我試圖用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