退出百分号登录SQL查询正则表达式?

时间:2014-09-18 14:33:21

标签: mysql sql regex

此查询有效:

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

但这并不是。它没有返回任何内容,但我有一个值&#34; 100%&#34;在我的桌子上。

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

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

2 个答案:

答案 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中看到您不必逃避百分号(即使您可以这样做)。

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