我需要从文本字段中提取信息,该文本字段可以包含许多值中的一个.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.