我想返回查询 WHERE Variable LIKE “Test%This” - 表示当变量为“Test This”和“TestThis”时查询返回。
换句话说,无论是否有空格,查询都会返回 Test This 背靠背的所有值。
我想返回查询 WHERE Variable LIKE “Test%This” - 表示当变量为“Test This”和“TestThis”时查询返回。
换句话说,无论是否有空格,查询都会返回 Test This 背靠背的所有值。
尝试这个:
WHERE Variable RLIKE 'Test ?This'
一个空格,当它位于字符串的中间时,没有特殊含义,也就是说,您可以很好地用任何其他单个字符替换您的要求中的空格 - 这对问题没有任何影响,从某种意义上说就单个 LIKE 谓词而言,它没有解决方案,因为 LIKE 支持的任何模式都不能同时匹配Test This
和TestThis
。
因此,您的选择是:
转到特定于平台并使用@GOTO 0对 MySQL 的 RLIKE 建议和对 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'
选择一个最适合你(或最不让你不快)的。
在 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'