如何在MS sql中显示类似11111或类似的数字

时间:2015-04-21 10:52:56

标签: mysql sql regex database

我正在尝试显示ID列中应该具有相同数字的数字。

如11111或2222或33333

select * from table where id like '1111' - 这会给我一个值,但有很多值,如1111111111或111111,我不确定,因为有超过100k的记录。

4 个答案:

答案 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'