mysql - 在两个 mysql 表中搜索多个列?

标签 mysql search

我有两个表格和一个搜索表单,仅用于搜索关键字。我正在尝试在两个表中为多个列搜索该关键字,如果查询匹配,则获取 id 列以供进一步使用。我试过这个(假设“优惠券”是用户正在搜索的术语)

SELECT `ID` FROM `Profiles` AS `p` WHERE `p`.`Status` = 'Active' AND `p`.`Address`
LIKE '%coupon%' OR `p`.`BusinessName` LIKE '%coupon%' OR `p`.`BusinessSubCategory`
LIKE '%coupon%' OR `p`.`DescriptionMe` LIKE '%coupon%' OR `p`.`Tags` LIKE '%coupon%'
UNION SELECT `id` FROM `products` AS `d` WHERE `d`.`status` = 'approved' AND
`d`.`title` LIKE '%coupon%' OR `d`.`desc` LIKE '%coupon%' OR `d`.`tags` LIKE '%coupon%'

在这里,我想要与关键字匹配的配置文件 ID 和产品 ID。我试过了,这返回了非常奇怪的结果,看起来只是个人资料 ID。所以,这是一个错误的查询。这种搜索的查询应该是什么?内部联接?请给我一些示例查询,我将非常感谢任何帮助。

最佳答案

首先,当您不执行 INNER JOIN 等操作时,我不会使用 AS p...看起来有点过头了,而且我猜您需要括号在 AND 之后 - 如果您明确希望找到状态为“事件”的结果,则也包围 OR

怎么样:

    SELECT ID FROM Profiles WHERE Status = 'Active' AND (Address LIKE '%coupon%' OR BusinessName LIKE '%coupon%' OR BusinessSubCategory LIKE '%coupon%' OR DescriptionMe LIKE '%coupon%' OR Tags LIKE '%coupon%')
UNION SELECT id FROM products WHERE status = 'approved' AND (title LIKE '%coupon%' OR desc LIKE '%coupon%' OR tags LIKE '%coupon%')

关于mysql - 在两个 mysql 表中搜索多个列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11491828/

相关文章:

java - mysql count(*) 语法错误

mysql - 在 MVC 中创建可变列表模型

mysql - 更新集 = 选择语句 & 主键问题

php - 将表、tr、td 值发送到 mysql,包括日期选择器

java 在屏幕上搜索图像

excel - 在字符串 VBA 中搜索数字

来自数据库的数量卷的 Javascript 条形图未显示在 php 网页中

android - 从 Activity 开始 Google 搜索查询 - Android

java - Embedded Solr Server 的使用是否过时且不推荐?

algorithm - 尽可能将学生安排在尽量减少作弊的位置