该查询有效:

SELECT * FROM table WHERE column REGEXP "[[:<:]]100[[:>:]]"


但这不是。它不返回任何内容,但是我的表上有一个值“ 100%”。

SELECT * FROM table WHERE column REGEXP "[[:<:]]100%[[:>:]]"


如何使用百分比信号进行查询?

最佳答案

这取决于。您必须将字符类[[::>::]]更改为其他符合您需要的字符,因为百分号不是单词字符,请参见REGEXP documentation


  [[::]]
  
  这些标记代表单词边界。他们匹配开始
  字尾分别。单词是单词字符序列
  不能在单词字符之前或之后。一个字
  字符是alnum类中的字母数字字符或
  下划线(_)。


如果后面可以接空格或标点符号或字符串结尾,则可以使用

SELECT * FROM example WHERE content REGEXP '[[:<:]]100%([[:blank:]]|[[:punct:]]|$)';


您可以在this demo中看到不必逃脱百分号(即使您可以这样做)。

百分号使不再使用单词结束边界。您必须找到对您有用的其他标记的组合。

关于mysql - 在SQL查询正则表达式中转义百分号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25915570/

10-11 02:46
查看更多