我的列中包含类似此模式的数据:0#0#0#0#0
有时,数据会更改为:1#0#0#0#0
或1#2#0#0#0
或1#2#3#0#0
我的问题是用正则表达式搜索第一个和第二个数字不为零。
我的疑问是:
SELECT * FROM table WHERE column REGEXP '^...#0#0#0$'
但是选择了包含数据1#0#0#0#0
和1#2#0#0#0
的结果。
我只想选择1#2#0#0#0
。
答案 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