我在表CODE_DETAILS中有一个名为CODES的列,其中包含
等值ABCD \ DRD, ABCD \ X \ 1, ABCD \ X \ 2, ABCD \ Y \ 7, ABCD \ PRE
我想选择所有以ABCD \开头的行,但我不希望以X \ 1,X \ 2和Y \ 7结尾的行
答案 0 :(得分:2)
您也可以使用常规like
:
where codes like 'ABCD\%' and
codes not like '%X\1' and
codes not like `%X\2' and
codes not like `%Y\7'
正则表达式比标准SQL like
运算符强大得多。但是,like
在数据库中是可移植的,并且更容易理解。
答案 1 :(得分:1)
如果您想明确排除以X\1
,X\2
和Y\7
结尾的代码,请尝试以下操作:
SELECT * FROM code_details
WHERE REGEXP_LIKE (codes, '^ABCD\\')
AND NOT REGEXP_LIKE(codes, '((X\\1)|(X\\2)|(Y\\7))$')