Mysql SQL concat_ws语法错误
我试图运行以下concat_ws代码,但出现语法错误。这个sql代码有什么问题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,
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')))