MySQL REGEXP整数比较

时间:2012-09-23 19:26:47

标签: mysql regex comparison

我使用REGEXP匹配LONGTEXT列中大量文本中的特定字符串。例如:

Text text text text text
 text text text text text
 text text SOLD: 75/101 text
 text text text text text

所以我的查询看起来像这样:

SELECT * FROM `test` WHERE `file` REGEXP
'SOLD:[ ]{1}[0-9]{1,2,3}/[0-9]{1,2,3}'

哪个与SOLD: 75/101字符串匹配正确。

但有可能对分子进行比较吗?比如,找到所有SOLD: >=75/101

比较号码是用户通过$ _POST输入的号码。我知道REGEXP并不是真的用于比较数字,但有没有办法用regexp 捕获字符串,然后用其他方式对整数进行比较?

1 个答案:

答案 0 :(得分:3)

如果您只需要查看分子,如评论中所述,那么

SELECT * FROM mytable WHERE mycolumn REGEXP 
"SOLD: ([1-9][0-9]{2,}|[8-9][0-9]|7[5-9])/101";

应该有用。

顺便说一下,[0-9]{1,2,3}是大多数正则表达式中的语法错误(我不知道MySQL如何处理它);指定范围的正确方法是[0-9]{1,3}