gpt4 book ai didi

sql-server - SQL 查询 - 跨多个字段搜索

转载 作者:行者123 更新时间:2023-12-01 07:12:18 25 4
gpt4 key购买 nike

我正在尝试实现一种搜索,您可以在其中输入多个搜索词以形成 AND 条件。它还应该在数据库的不同字段中进行搜索。

所以例如:
当您输入“Bill Seattle”时,您应该会得到一个记录,其中姓名 匹配比尔和 城市 匹配西雅图。你不应该得到任何只有 的行城市 匹配西雅图。

现在,这听起来并不复杂,但它似乎真的比我想象的要难。我想出了这样的事情:

SELECT * FROM ADDRESS WHERE
((NAME LIKE 'Bill%') OR (NAME LIKE 'Seattle%'))
AND
((CITY LIKE 'Bill%') OR (CITY LIKE 'Seattle%'))

这在我们之前的案例中效果很好,但假设我们添加另一个字段:
SELECT * FROM ADDRESS WHERE
((NAME LIKE 'Bill%') OR (NAME LIKE 'Seattle%'))
AND
((CITY LIKE 'Bill%') OR (CITY LIKE 'Seattle%'))
AND
((COMPANY LIKE 'Bill%') OR (COMPANY LIKE 'Seattle%'))

现在它不会返回所需的结果。
我本质上需要的(我猜)是一种确定子条件是否像的方法
 ((COMPANY LIKE 'Bill%') OR (COMPANY LIKE 'Seattle%'))

返回一些东西,如果没有,我需要忽略该条件。

顺便说一句,我使用的是 MSSQL '05。

最佳答案

首先,我不知道它是如何在 MSSQL 上完成的,但您可能想查看全文搜索。

另一方面,这可能是您真正的意思:

SELECT * FROM ADDRESS WHERE
((NAME LIKE 'Bill%') OR (CITY LIKE 'Bill%') OR (COMPANY LIKE 'Bill%'))
AND
((NAME LIKE 'Seattle%') OR (CITY LIKE 'Seattle%') OR (COMPANY LIKE 'Seattle%'))

关于sql-server - SQL 查询 - 跨多个字段搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/637757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com