【发布时间】:2017-01-12 21:36:30
【问题描述】:
我有一个包含近 15 万条记录和 65 列的 Oracle 表。我的客户要求他们需要使用单个搜索值搜索整个表,并且也可以是通配符搜索。
最糟糕的是,我正在使用 php 语言来做到这一点。
所以我构建了一个包含所有 65 列的查询来搜索单个字符串值。
示例查询:
SELECT * FROM <TABLE_NAME>
WHERE (col1 || col2 || col3 ... || col65) LIKE '%<SEARCH_VALUE>%'
查询正在为某些字段提供输出,如果我们传递一些与地址相关的字段,有时它会失败。
在某些情况下,尤其是通配符类型搜索并且输出超过 1000 行时。
我已经使用 php 语言完成了这些测试。但同时当我尝试使用 SQL Developer 执行查询时。它一直在给出结果。所以我很困惑。
除了我试图访问的 Oracle 服务器之外,还有一个外部服务器,它不在我们的环境中。
请建议我如何实现此功能或想法,我非常感谢您的助手。
【问题讨论】:
-
如果您不使用通配符,我认为您可以使用
WHERE :search IN (col1, col2, col3, ..., col65)。对于通配符,我认为您需要另一种方法。