如何将 "NOT LIKE" 用于 SQL 中的列值
How to use "NOT LIKE" for a column values in SQL
所以我有一个 table 这样的:
X. Y.
34560 eudhkri 34560 abc
26558 hsyrb 26558 ax
3666 dhurb 3666 yzhdj
3666 dhfhjf 366688 avh
233 abc 233 hdhsijej
由于 Y
列中的字符是可变的(意味着它们有不同数量的字母)我想我可以使用 NOT LIKE
运算符来排除 X
值所在的行在 Y
列中。
但是,我不知道怎么做。不可能只写下 X 的每个值。另外,我特地写了第 4 行是为了告诉你我不能排除这个数据,因为数字不一样,所以使用 % 可能会造成一些麻烦。
您可以使用正则表达式:
WHERE y ~ ('\m' || x || '\M')
\m
标记单词的开始,\M
结束。
如果你想使用类似的操作符你可以试试这个
select *
from my_table
where y NOT like concat('%',x,'%')
或
select *
from my_table
where y NOT like concat('% ', x,' %')
所以我有一个 table 这样的:
X. Y.
34560 eudhkri 34560 abc
26558 hsyrb 26558 ax
3666 dhurb 3666 yzhdj
3666 dhfhjf 366688 avh
233 abc 233 hdhsijej
由于 Y
列中的字符是可变的(意味着它们有不同数量的字母)我想我可以使用 NOT LIKE
运算符来排除 X
值所在的行在 Y
列中。
但是,我不知道怎么做。不可能只写下 X 的每个值。另外,我特地写了第 4 行是为了告诉你我不能排除这个数据,因为数字不一样,所以使用 % 可能会造成一些麻烦。
您可以使用正则表达式:
WHERE y ~ ('\m' || x || '\M')
\m
标记单词的开始,\M
结束。
如果你想使用类似的操作符你可以试试这个
select *
from my_table
where y NOT like concat('%',x,'%')
或
select *
from my_table
where y NOT like concat('% ', x,' %')