该查询有效:
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/