所以’awesome document’LIKE’%doc%’是真的,因为doc是一个子字符串.但是,我想要它是错误的,而“awesome doc”或“doc awesome”或“awesome doc awesome”应该是真实的.我该怎么办?
我正在使用sqlite,所以我希望我不必使用不可用的东西.
解决方法
如何把它分成四部分 –
[MyColumn] Like '% doc %' OR [MyColumn] Like '% doc' OR [MyColumn] Like 'doc %' OR [MyColumn] = 'doc'
编辑:替代方法(仅适用于ASCII字符)可以是:
'#'+[MyColumn]+'#' like '%[^a-z0-9]doc[^a-z0-9]%'
(你可能还要照顾任何特殊的字符)
它看起来不像,但是您可能想要探索Full Text Search和Contains,以防更适合您的情况.
看到:
– MSDN: [ ] (Wildcard – Character(s) to Match) (Transact-SQL)