2017-08-16 191 views
0

我有一個MySQL表,我需要從中檢索一些字段。 我需要包含H_HP_的字符串分別使用兩個不同的查詢。MySQL - 搜索字符串包含「_」與LIKE

但問題是下劃線是在通配符中,我無法找到正確的結果。

HP_

SELECT nc.`logname`, nc.`client_id`, nc.`Customer_Name`, cb.`bwm_day_cir_upload`, cb.`bwm_day_cir_download` 
FROM `new_client` nc 
LEFT JOIN `client_bandwidth` cb ON cb.`client_id` = `nc`.`client_id` 
WHERE nc.`logname` LIKE '%HP_%' AND nc.`Active` = 'y' ORDER BY TRIM(UPPER(nc.`logname`)) 
+1

將其轉義'\ _'。 – lad2025

+1

當你遇到這樣的問題時,首先檢查文件總是值得的。 ['like'的MySQL文檔](https://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html#operator_like):_「要測試通配符的文字實例,如果你沒有指定'ESCAPE'字符,則假定'\\'。「_ –

+0

@MarkRotteveel,謝謝你的建議。 –

回答

1

實例查詢,你說這是一個通配符。然後,只需用'\_'

SELECT nc.`logname`, nc.`client_id`, nc.`Customer_Name`, cb.`bwm_day_cir_upload`, cb.`bwm_day_cir_download` 
FROM `new_client` nc 
LEFT JOIN `client_bandwidth` cb ON cb.`client_id` = `nc`.`client_id` 
WHERE nc.`logname` LIKE '%HP\_%' AND nc.`Active` = 'y' ORDER BY TRIM(UPPER(nc.`logname`)) 
相關問題