Mysql SQL concat_ws语法错误

Mysql SQL concat_ws语法错误,mysql,concat-ws,Mysql,Concat Ws,我试图运行以下concat_ws代码,但出现语法错误。这个sql代码有什么问题 select count(policy_number) from resp_party where c_policy_effective_date = concat_ws('-', policy_effective_date_yyyy, (lpad(policy_effective_date_mm, 2, ""00"")), (lpad(policy_effective_date_dd,

我试图运行以下concat_ws代码,但出现语法错误。这个sql代码有什么问题

select count(policy_number) 
from resp_party 
where c_policy_effective_date = concat_ws('-', policy_effective_date_yyyy, 
      (lpad(policy_effective_date_mm, 2, ""00"")),
      (lpad(policy_effective_date_dd, 2, ""00"")))

双引号是问题所在。你应该不怀疑他们,或者逃避他们

根据您的意图,您可以写:

where c_policy_effective_date = concat_ws('-', policy_effective_date_yyyy, 
      (lpad(policy_effective_date_mm, 2, '"00"')),
      (lpad(policy_effective_date_dd, 2, '"00"')))
或者,最有可能的情况是(到带零的左焊盘):

请注意,如果使用单引号引用字符串,则更符合标准。自:

如果启用了
ANSI_QUOTES
SQL模式,则字符串文字只能在单引号内引用,因为双引号内引用的字符串被解释为标识符


如果要转义双引号,请注意,转义字符的方法不是将其加倍,而是在其前面加上反斜杠。但是,如果使用单引号分隔字符串,则不需要转义双引号。

非常感谢!我把双引号改为一个引号,我的代码就可以工作了。其中,c_policy_effect_date=concat_ws('-',policy_effect_date_yyyy,(lpad(policy_effect_date_mm,2,'00'),(lpad(policy_effect_date_dd,2,'00'))
where c_policy_effective_date = concat_ws('-', policy_effective_date_yyyy, 
      (lpad(policy_effective_date_mm, 2, '0')),
      (lpad(policy_effective_date_dd, 2, '0')))