我在表 CODE_DETAILS 中有一个名为 CODES 的列,其中包含诸如
ABCD\DRD、ABCD\X\1、ABCD\X\2、ABCD\Y\7、ABCD\PRE
我想选择所有以 ABCD\ 开头的行,但我不希望以 X\1、X\2 和 Y\7 结尾的行
您也可以使用常规执行此操作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
在数据库之间是可移植的,并且更易于理解。
如果您想明确排除以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))$')