REGEXP不工作的MySQL CASE语句

REGEXP不工作的MySQL CASE语句,mysql,linux,pcre,pcregrep,Mysql,Linux,Pcre,Pcregrep,我想使用一个使用REGEXP的CASE语句。目前我正在做这样的事情: SELECT `date_of_sale`, CASE WHEN `date_of_sale` regexp '[0-9]*-[0-9]*-[0-9]*' then str_to_date(`date_of_sale`, '%m-%d-%Y') ELSE `date_of_sale` END FROM <TABLE_NAME> 选择“销售日期”, 案例 当'date\u of s

我想使用一个使用REGEXP的CASE语句。目前我正在做这样的事情:

SELECT `date_of_sale`,
  CASE 
    WHEN `date_of_sale` regexp '[0-9]*-[0-9]*-[0-9]*' then str_to_date(`date_of_sale`, '%m-%d-%Y')
    ELSE
    `date_of_sale`
  END
FROM <TABLE_NAME>
选择“销售日期”,
案例
当'date\u of seal'regexp'[0-9]*-[0-9]*-[0-9]*'时,则str\u to\u date('date\u of seal','%m-%d-%Y'))
其他的
`销售日期`
结束
从…起
它将给出一个错误,如下所示


如何解决这个问题

把它写成一个动态查询删除背景标记-我想你的编辑不理解它们。实际上,你不应该使用它们。如果必须使用它们(因为实体名称与关键字冲突),请将实体重命名为不需要的名称them@Divyarajsinh,您的代码工作正常,在一行中进行查询并检查,此处检查其工作正常,无错误:检查此处也工作: