我要返回查詢的WHERE可變LIKE「測試%這一」 - 這意味着該查詢返回時變量是「測試這個」和「TestThis」。與空間,沒有空間返回標籤的SQL查詢同時
換句話說,如果有一個空間或沒有查詢返回那裏測試這是背靠背的所有值,不管。
我要返回查詢的WHERE可變LIKE「測試%這一」 - 這意味着該查詢返回時變量是「測試這個」和「TestThis」。與空間,沒有空間返回標籤的SQL查詢同時
換句話說,如果有一個空間或沒有查詢返回那裏測試這是背靠背的所有值,不管。
試試這個:
WHERE Variable RLIKE 'Test ?This'
在SQL服務器試試這個代碼
from msdn :
_ (underscore) : Any single character.
Example : WHERE au_fname LIKE '_ean' finds all four-letter first names that end with ean (Dean, Sean, and so on).
Where columnnam like 'Test_This'
的空間,當它在一個字符串的中間,有沒有特殊的含義,也就是說,你很可能有用任何其他單個字符替換了需求中的空間 - 對於這個問題它沒有任何區別,因爲在單個LIKE謂詞中沒有解決方案,因爲LIKE支持的任何模式都不能匹配Test This
和TestThis
。
所以,你的選擇是:
GO平臺專用和使用@GOTO 0's RLIKE suggestion爲MySQL和SQL Server的正則表達式支持外部解決方案。
放棄的單個條件和對陣每個單獨的值的想法。此選項將是平臺無關的,有變化:
使用OR
(這是第一次提出,雖然語法錯誤,通過@Szymon,誰刪除被否決後的答案):
WHERE Variable = 'Test This' OR Variable = 'TestThis'
IN
使用:
WHERE Variable IN ('Test This', 'TestThis')
UNION ALL
(由@克里斯建議到@ Szymon的答案被刪除留言熱評):
... /* some query */
WHERE Variable = 'Test This'
UNION ALL
... /* same query */
WHERE Variable = 'TestThis'
選擇一個適合你最多(或最少不喜悅你)。
'%'匹配任意數量的字符,甚至是零個字符,請嘗試將其刪除 –
是否要返回僅具有空格的值 – Viji
如果您只搜索一個空格,請使用「_」下劃線而不是% – Viji