MySQL正则表达式与NOT LIKE等效

时间:2015-01-25 16:38:05

标签: mysql regex

我的列中包含类似此模式的数据:0#0#0#0#0

有时,数据会更改为:1#0#0#0#01#2#0#0#01#2#3#0#0

我的问题是用正则表达式搜索第一个和第二个数字不为零。

我的疑问是:

SELECT * FROM table WHERE column REGEXP '^...#0#0#0$'

但是选择了包含数据1#0#0#0#01#2#0#0#0的结果。

我只想选择1#2#0#0#0

3 个答案:

答案 0 :(得分:0)

您可以使用substring_index()代替吗?

where substring_index(column, '#', 1) <> '0' and
      substring_index(substring_index(column, '#', 2), '#', -1) <> '0'

答案 1 :(得分:0)

^[1-9]#[1-9]#0#0#0$

^[^0]#[^0]#0#0#0$

我想这应该做到。

答案 2 :(得分:0)

您可以使用以下内容:

SELECT * FROM table WHERE column REGEXP '^[1-9]#[1-9]#0#0#0$'

您可以使用此工具测试正则表达式:http://regexr.com/3a9hi

Tested with regexr.com