在我的名为AAA的SQL Server表中,我有一个名为BBB的字段,其中包含充满外卡的字符串:
&安培; ABC ## v
_&安培; ABC ##&安培;&安培;
_&安培; ABC ## _ 12
_&安培; ABC ##%
我需要允许用户在此字段中搜索部分匹配 用户的搜索短语将包含大量的外卡 解决这个问题的最佳方法是什么?
我想我可以写一些像:
select * from AAA where BBB like '%' +
(add escape character to every wild card found in user's question) + '%'
escape 'whatever char is not being used in user's question'
但我不喜欢这个想法。还有更好的吗?
答案 0 :(得分:0)
或者您可以使用全文搜索,与LIKE运算符相比,它可以提供更好的性能,我会创建表的全文索引并使用全文搜索
DECLARE @userValue nvarchar(100) = 'some Value'
Declare @sql NVARCHAR(MAX);
SET @sql = '''''select * from myTable
WHERE CONTAINS (myColumn, "' + @userValue + '")'''''
EXECUTE sp_Executesql @sql