MySQL喜欢声明错误

时间:2012-04-25 09:36:02

标签: mysql sql-like

我正在尝试选择申请人_id等于'Staff01'的数据,而我正在使用这个条件:

WHERE
IF (c.use_id_as_emp_no = '0', ccal.applicant_id, cc.contractor_idPK) LIKE '%staff01%'

当我执行查询时,没有结果。但是如果我在LIKE语句中删除字符串的第一个字母(即s),则会显示结果。

另一件事是当我在上面的条件中删除了IF语句时,它将如下所示:

WHERE
ccal.applicant_id LIKE '%staff01%'

显示带有applicant_id Staff01的数据。

IF语句是否导致LIKE功能出现故障?请帮我。我在这方面很难过。非常感谢。

编辑:在比较中使用LCASE()解决

WHERE
IF (c.use_id_as_emp_no = '0', LCASE(ccal.applicant_id), cc.contractor_idPK) LIKE LCASE('%staff01%')

1 个答案:

答案 0 :(得分:0)

尝试

where IF (c.use_id_as_emp_no = '0', ccal.applicant_id, cc.contractor_idPK) 
COLLATE latin1_general_ci LIKE '%staff01%'