[英]How do I exclude particular words from a match?
假設我有以下 SQL 查詢:
SELECT
id, text
FROM
comments
WHERE
lower(text) LIKE '%hell%'
ORDER BY len(text) ASC
這匹配包含hell
任何文本。 但是,我想從匹配中排除一個特定的詞:“貝殼”。 我如何編寫一個 SQL 查詢來匹配包含hell
所有內容,但忽略seashells
?
例子:
您可以嘗試保留當前的邏輯,但在首先從文本中刪除seashells
后檢查%hell%
:
SELECT id, text
FROM comments
WHERE LOWER(REPLACE(text, 'seashell', '')) LIKE '%hell%'
ORDER BY LEN(text);
請注意,正則表達式搜索將是處理您的需求的更好方法,但 SQL Server 沒有太多內置的正則表達式支持。
您可以在 Sql Query 中嘗試Not Like
。 這是您可以嘗試的方法。
SELECT
id, text
FROM
comments
WHERE
lower(text) LIKE '%hell%'
ORDER BY len(text) ASC
EXCEPT
SELECT
id, text
FROM
comments
WHERE
lower(text) LIKE '%seashells%'
OR
lower(text) LIKE '%other_word%'
ORDER BY len(text) ASC
排除某些包含地獄的特定關鍵字。 注意:NOT / LIKE 區分大小寫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.