我有一个我一直在尝试进行的查询,它应该提取所有不包含我们不想要的字符的行。
SELECT NID FROM NOTES WHERE NOTE LIKE '%[^0-9a-zA-Z#.;:/^\(\)\@\ \ \\\-]%'
那应该返回任何不包含的行
0-9 a-z A-z . : ; ^ & @ \ / ( ) #
但是任何时候我在下面添加其中一个都会失败
$ [ ] ?
即使试图通过 \ 或 [[ 来逃避它们似乎也无法正常工作。我只能访问股票 SQL 安装。
我有一个我一直在尝试进行的查询,它应该提取所有不包含我们不想要的字符的行。
SELECT NID FROM NOTES WHERE NOTE LIKE '%[^0-9a-zA-Z#.;:/^\(\)\@\ \ \\\-]%'
那应该返回任何不包含的行
0-9 a-z A-z . : ; ^ & @ \ / ( ) #
但是任何时候我在下面添加其中一个都会失败
$ [ ] ?
即使试图通过 \ 或 [[ 来逃避它们似乎也无法正常工作。我只能访问股票 SQL 安装。
它应该拉出所有不包含我们不想要的字符的行。
要查找包含 x
您的行,可以使用LIKE
:
SELECT * FROM yourtable WHERE col LIKE '%x%'
要查找不包含 x
您的行,可以使用NOT LIKE
:
SELECT * FROM yourtable WHERE col NOT LIKE '%x%'
所以你的查询应该使用NOT LIKE
,因为你想要不包含某些东西的行:
SELECT NID FROM NOTES WHERE NOTE NOT LIKE '%[0-9a-zA-Z#.;:/^\(\)\@\ \ \\\-]%'
那应该返回任何不包含的行
0-9 a-z A-z . : ; ^ & @ \ / ( ) #
不,因为^
在开头,它返回不包含字符的行,除了那些。您列出的那些字符是允许的字符。