SQL解决方案应该如何通过数据库表和列进行非常有效的文本搜索?
我们要求用户应该能够通过自由文本搜索搜索大量数据。 数据被分成多个表,当然每个表有多个列。 列可以是数字数据类型或文本列。
如果用户搜索例如
Mainstreet 1013
我们可以做类似的事情:
SELECT * FROM TableA WHERE
columnVarcharX LIKE '%Mainstreet%' OR
columnVarcharX LIKE '%1013%' OR
columnIntegerX LIKE '%1013%'
SELECT * FROM TableB WHERE
columnVarcharY LIKE '%Mainstreet%' OR
columnVarcharY LIKE '%1013%' OR
columnIntegerY LIKE '%1013%'
....
还有更多。 但这不是一种高效且不易维护的问题。 我们通常使用H2database,MySQL和PostgreSQL。
也许非常基本的问题,这类问题是如何命名的?
如何解决这个问题?
是否有任何SQL标准解决方案来解决此类问题?
答案 0 :(得分:-1)
试试这个:
DECLARE
@street AS VARCHAR(50),
@integer AS VARCHAR(50)
SET @street = 'Mainstreet%'
SET @integer = '1013%'
SELECT * FROM tableA, tableB
WHERE columnName LIKE @find
OR columnName1 LIKE @integer