我想查询一个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
答案 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
不会匹配。如果需要使正则表达式不区分大小写,请将其删除。
[[:<:]]
匹配左侧(起始)单词边界,[[:>:]]
匹配底部(起始)单词边界。