2017-08-16 114 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`)) 
相关问题