此查询有效:
SELECT * FROM table WHERE column REGEXP "[[:<:]]100[[:>:]]"
但这并不是。它没有返回任何内容,但我有一个值&#34; 100%&#34;在我的桌子上。
SELECT * FROM table WHERE column REGEXP "[[:<:]]100%[[:>:]]"
如何使用百分比信号进行查询?
答案 0 :(得分:0)
据我所知%
在正则表达式中不是特殊字符。
你应该能够开火:
SELECT * FROM table WHERE column REGEXP '[[:<:]]100%[[:>:]]'
答案 1 :(得分:0)
这取决于。您必须将角色类[[::>::]]
更改为符合您需要的其他内容,因为百分号不是单词字符,请参阅REGEXP documentation:
[[:&lt;:]],[[:&gt;:]]
这些标记代表字边界。他们匹配开头和 词尾,分别。一个单词是一系列单词字符 不在单词字符之前或之后的单词字符。 一个字 character是alnum类中的字母数字字符或 下划线(_)。
如果可以跟随空格或标点或字符串的结尾,那么你可以使用
SELECT * FROM example WHERE content REGEXP '[[:<:]]100%([[:blank:]]|[[:punct:]]|$)';
您可以在this demo中看到您不必逃避百分号(即使您可以这样做)。
百分号使得单词结束边界的使用不再适用。你必须找到适合你的其他标记的组合。