-1

我在表 CODE_DETAILS 中有一个名为 CODES 的列,其中包含诸如

ABCD\DRD、ABCD\X\1、ABCD\X\2、ABCD\Y\7、ABCD\PRE

我想选择所有以 ABCD\ 开头的行,但我不希望以 X\1、X\2 和 Y\7 结尾的行

4

2 回答 2

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在数据库之间是可移植的,并且更易于理解。

于 2013-04-29T15:41:11.883 回答
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))$')
于 2013-04-29T15:31:03.743 回答