当前位置:  开发笔记 > 数据库 > 正文

SQL查询 - 跨多个字段搜索

如何解决《SQL查询-跨多个字段搜索》经验,为你挑选了1个好方法。

我正在尝试实现搜索,您可以在其中输入多个搜索项以形成AND条件.它还应搜索数据库的不同字段.

例如:
当你输入"比尔西雅图"时,你应该得到一个记录,其中NAME匹配比尔CITY匹配西雅图.你不会得到任何只有CITY匹配西雅图的行.

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

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.



1> Can Berk Güd..:

首先,我不知道它是如何在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%'))

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有