MySQL - 搜索字符串包含" _"喜欢

时间:2017-08-16 06:36:07

标签: mysql wildcard

我有一个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`))

2 个答案:

答案 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}}   假设

     
      
  • \%匹配一个%字符。

  •   
  • \_匹配一个_字符。

  •