我正在尝试显示ID列中应该具有相同数字的数字。
如11111或2222或33333
select * from table where id like '1111'
- 这会给我一个值,但有很多值,如1111111111或111111,我不确定,因为有超过100k的记录。
答案 0 :(得分:2)
使用正则表达式
SELECT * from table where id REGEXP '^(1+|2+|3+|4+|5+|6+|7+|8+|9+)$';
答案 1 :(得分:2)
您可以使用正则表达式执行此操作,例如:
where id regex '^((1+)|(2+)|(3+)|(4+)|(5+)|(6+)|(7+)|(8+)|(9+)|(0+))$'
在testing后,这需要一组额外的括号(刚刚添加)。
答案 2 :(得分:1)
如果数字必须与第一个数字匹配,您可以捕获第一个数字,然后使用反向引用:
^([0-9])\1+$
如果安装了LIB_MYSQLUDF_PREG导入PCRE库(按Regular-expressions.info),这将有效。语法为PREG_RLIKE('/^([0-9])\\1+$/i', col)
。
答案 3 :(得分:0)
使用%通配符
如果您想包括2341111,111342或23111154等数字
SELECT *
FROM table
WHERE id LIKE '%1111%'
如果您只想要具有相同数值1111或1111111或11111111等的数字
SELECT *
FROM table
WHERE id LIKE '1%11%1'