我有一个MySQL表,我需要从中检索一些字段。
我需要包含H_
和HP_
的字符串。分别使用两个不同的查询。
但问题是下划线是在通配符中,我无法找到正确的结果。
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`))
答案 0 :(得分: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`))
答案 1 :(得分:1)
救援文件!您是否阅读了以下页面:https://dev.mysql.com/doc/refman/5.7/en/string-comparison-functions.html#operator_like
以下是摘录:
要测试通配符的文字实例,请在其前面加上 逃避角色。如果您未指定
ESCAPE
字符,则\
为。{1}} 假设
\%
匹配一个%字符。
\_
匹配一个_字符。