MySQL REGEXP整数比较

MySQL REGEXP整数比较,mysql,regex,comparison,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}' 这将正确匹配已售出:7

我使用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}'
这将正确匹配
已售出:75/101
字符串

但是,有可能对分子进行比较吗?例如,查找所有售出的
:>=75/101


比较编号将是用户通过$POST输入的编号。我知道REGEXP并不是用来比较数字的,但是有没有什么方法可以用REGEXP捕捉字符串,然后用其他方法对整数进行比较?

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

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如何处理它);指定范围的正确方法是<代码> [09] {1,3} .< /P>您可以创建存储过程来封装任何逻辑,您只需要考虑诸如“代码>76/101 < /代码>和<代码> 123/101 < /代码>之类的部分,或者您还必须考虑<代码> 70/80 <代码>(当然,大于<代码> 75/101 < /代码>)是的,我也要考虑前两个。我不想把分数作为一个整体来比较,只想比较分子。用户输入的$是多少?POST值是80还是90?啊,是的。那部分我读得不够透彻。很抱歉,MySQL正则表达式不支持捕获组,所以我想您真的需要使用自定义函数来实现这一点。不幸的是,我对MySQL不太了解,无法提出解决方案。@Norse:意思是“2个或更多”。