MySQL REGEXP 整数比较

标签 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 捕获字符串,然后以其他方式对整数进行比较?

最佳答案

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

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}

关于MySQL REGEXP 整数比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12555531/

相关文章:

用于读取 Microsoft Excel 文件的 Java 库

javascript - 使用 jquery 进行整数比较时遇到问题

javascript - jQuery 在两个字符串标识符之间选择 HTML

php - 邮件列表数据模式

php - 从 SQL 数据库下载文件时出现错误

sql - MySQL - 哪里 - 搜索字符串 - 匹配

php - 从头开始匹配字符串的一部分

javascript - 替换 Javascript 中的 Windows 回车符

javascript - 当值可能不再存在时检测更改的最佳方法?

php - 不同条件下的计数