我想返回查询WHERE变量LIKE“Test%This” - 意味着当变量为“Test This”和“TestThis”时查询返回。
换句话说,无论是否有空格,查询都会返回Test This背靠背的所有值。
答案 0 :(得分:2)
试试这个:
WHERE Variable RLIKE 'Test ?This'
答案 1 :(得分:1)
一个空间,当它在一个字符串的中间时,没有特殊的意义,即你很可能已经用你的任何其他单个字符取代了你的要求中的空间 - 它对问题没有任何影响,在感觉单个LIKE谓词没有解决方案,因为LIKE支持的模式不能匹配Test This
和TestThis
。
所以,你的选择是:
特定于平台并使用@GOTO 0's RLIKE suggestion用于MySQL和外部解决方案,以支持SQL Server的RegExp。
放弃单个条件的概念并单独匹配每个值。此选项与平台无关,并具有变体:
使用OR
(@Szymon首先提出这个问题,尽管语法不正确,但在投票结束后删除了答案):
WHERE Variable = 'Test This' OR Variable = 'TestThis'
使用IN
:
WHERE Variable IN ('Test This', 'TestThis')
使用UNION ALL
(@Chris Lively在对@ Szymon的删除答案的评论中建议):
... /* some query */
WHERE Variable = 'Test This'
UNION ALL
... /* same query */
WHERE Variable = 'TestThis'
选择一个最适合你的(或最不喜欢你)。
答案 2 :(得分:0)
在SQL server中尝试此代码
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'