我试图用applicant_id等于“Staff01”选择一个数据,我用这个条件:MySQL的LIKE语句错误
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所示。
它是导致LIKE函数故障的IF语句吗?请帮帮我。我在这方面很难。非常感谢。
编辑:解决在使用比较
WHERE
IF (c.use_id_as_emp_no = '0', LCASE(ccal.applicant_id), cc.contractor_idPK) LIKE LCASE('%staff01%')
尝试检查区分大小写。 – 2012-04-25 09:39:34
您是否尝试过没有IF语句?只有两个由OR隔开的WHERE子句? – 2012-04-25 09:43:53
@tsabz我试过,它的工作原理。但我需要If语句,因为如果use_id_as_emp_no不是0,则必须检查contractor_idPK而不是applicant_id – 2012-04-25 09:52:03