[英]Select * From Table Where Name in like (wildcards)
是否可以組合 SQL 語句,例如
SELECT * FROM X WHERE Y LIKE '%a%' OR Y LIKE '%b%' OR Y LIKE '%c%' OR Y LIKE '%d%'
像
SELECT * FROM X WHERE Y IN ('a', 'b', 'c', 'd')
所以我不必像現在這樣寫一個大聲明:
IF NOT EXISTS(SELECT * FROM X WHERE Y LIKE '%a%' OR Y LIKE '%b%' OR Y LIKE '%c%' OR Y LIKE '%d%')
BEGIN
/* code */
END
使用像SELECT * FROM X WHERE Y IN LIKE ('%a%', '%b%', etc..)
這樣的東西會非常好SELECT * FROM X WHERE Y IN LIKE ('%a%', '%b%', etc..)
感謝所有幫助和建議,謝謝。
請使用以下代碼解決您的問題,如果仍有問題,請嘗試讓我知道。
SELECT * FROM X WHERE Y LIKE '%[a-d]%'
如果您的數據庫支持 RegEx,則可以使用它。 例如:
SELECT * FROM X WHERE Y SIMILAR TO '%(a|b|c|d)%'
在 PostgreSQL 中,和
SELECT * FROM X WHERE Y REGEXP 'a|b|c|d'
在 MySQL 中。
LIKE '%[ad]%'
將無法工作,因為LIKE
S IN大多數數據庫不接受正則表達式模式。 這將只期望字符串中某處的文字文本[ad]
。 每個數據庫如何解釋正則表達式(或本機模式)有很大差異。 所以你需要根據你的數據庫定制這些東西。 例如,以下內容在 PostgreSQL 中不起作用:
SELECT * FROM X WHERE Y SIMILAR TO 'a|b|c|d'
因為 PostgreSQL 會期望整個字符串為 'a'、'b'、'c' 或 'd'。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.