MySQL从文本列中选择规范

时间:2018-11-08 08:30:42

标签: mysql sql regex

我想查询一个MySQL 5数据库。

假设数据库名称为db,表名称为table,列名称为column

该列为text

包含以下示例:

aksksksksjsjk&ct=100&lor=10
aksksksksjsjk&ct=1001001001001001&lor=10

所以我只想查询该表和grep,其中ct以数字1开头,并且是16数字。

我尝试过SELECT column FROM db.table WHERE column LIKE '%ct=1%'

因此ct以数字1开头的地方会出现问题

所以请尝试帮助我从数字ct开始并包含16个1的情况下继续选择numbers

1 个答案:

答案 0 :(得分:1)

您可能希望使用其基本形式

SELECT column FROM db.table WHERE column REGEXP BINARY 'ct=1[0-9]{15}'

或者,要匹配整个单词:

SELECT column FROM db.table WHERE column REGEXP BINARY '[[:<:]]ct=1[0-9]{15}[[:>:]]'

请注意,[0-9]{15}匹配15位数字。

BINARY关键字将区分大小写,因此只有ct会匹配,而CT不会匹配。如果需要使正则表达式不区分大小写,请将其删除。

[[:<:]]匹配左侧(起始)单词边界,[[:>:]]匹配底部(起始)单词边界。