小编Mat*_*rum的帖子

具有大量子句的SQL'LIKE'语句的效率

我需要从文本字段中提取信息,该文本字段可以包含许多值中的一个.SQL看起来像:

SELECT fieldname
FROM table
WHERE bigtextfield LIKE '%val1%'
   OR bigtextfield LIKE '%val2%'
   OR bigtextfield LIKE '%val3%'
   .
   .
   .
   OR bigtextfield LIKE '%valn%'
Run Code Online (Sandbox Code Playgroud)

我的问题是:当数值接近数百,可能数千时,这有多高效?有一个更好的方法吗?

一种解决方案是创建一个新的表/列,只包含我之后的值并执行以下操作:

SELECT fieldname
FROM othertable
WHERE value IN ('val1', 'val2', 'val3', ... 'valn')
Run Code Online (Sandbox Code Playgroud)

我想象的是更高效,因为它只需要进行精确的字符串匹配.这样做的问题是保持这个表最新是很多工作.

顺便说一句我正在使用MS SQL Server 2005.

sql string performance search sql-server-2005

2
推荐指数
1
解决办法
2194
查看次数

标签 统计

performance ×1

search ×1

sql ×1

sql-server-2005 ×1

string ×1