【发布时间】:2014-10-21 19:32:21
【问题描述】:
我有一个选择查询进行搜索,我的@SearchText 可以由几个单词组成
我想将单词分成一个数组并选择某些文本是否包含我的搜索文本
查询:
ALTER PROCEDURE [dbo].[myStoreProcedure]
@SearchText varchar(100)
AS
BEGIN
SELECT * FROM t0
WHERE
ISNULL(@SearchText, '')='' OR t0.title LIKE '%' +@SearchText + '%')
现在我想要: 如果我搜索字符串 'adam smith' 或 'smith adam' 结果必须相同
如何将我的 @SearchText 转换为数组并从 table-t0 中提取行,其中标题包含我的 @SearchText 以任意顺序
【问题讨论】:
-
SQL 没有“数组”。 SQL 有带行的表。因此,您需要拆开您的
@SearchText并将每个单词放入临时表的单独行中,然后在某些数据库列的值中搜索该临时表内容的任意组合。话虽如此,使用 SQL Server 的全文搜索功能可能会更好。
标签: sql-server arrays tsql