【问题标题】:How to use "NOT LIKE" for a column values in SQL如何对 SQL 中的列值使用“不喜欢”
【发布时间】:2020-07-08 07:02:13
【问题描述】:

所以我有一张这样的桌子:

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 行来告诉你我不能排除这个数据,因为数字不一样,所以使用 % 可能会造成一些麻烦。

【问题讨论】:

  • 我不清楚是要包含 Y 包含 X 的行,还是要排除它们
  • 我想排除,感谢您回答和编辑我的问题

标签: sql postgresql sql-like


【解决方案1】:

你可以使用正则表达式:

WHERE y ~ ('\m' || x || '\M')

\m 标记单词的开头,\M 结尾。

【讨论】:

    【解决方案2】:

    如果你想使用类似的操作,你可以尝试这种方式

    select *
    from my_table 
    where y NOT like concat('%',x,'%')
    

    或

    select *
    from my_table 
    where y NOT like concat('% ', x,' %')
    

    【讨论】:

    • 这不包括您专门输入以显示您无法排除的行(第 4 行)。
    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 2021-04-26
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    • 2017-08-25
    • 2010-11-26
    • 1970-01-01
    相关资源
    最近更新 更多