首页 > 解决方案 > 使用多个关键字在多列中进行 SQL 搜索

问题描述

我有一个前端表单,其中包含两个名为“名称”和“位置”的字段。在我的数据库中,我有一个名为“postmeta”的表,其中包含列(meta_id、meta_key、meta_value)。当用户提交前端表单时,我想搜索此表中的两个字段值。“name”字段将在“meta_value”中查找值,其中“meta_key”等于“company_name”,类似地,“location”字段将在同一“meta_value”列中查找它的值,但“meta_key”等于“company_location” ”。

最后,当结果是最终结果时,我希望它通过“meta_value”字段对数据进行分组,前提是“meta_key”仅等于“company_name”。

我已经设法生成这样的 SQL 查询。

SELECT meta_value FROM postmeta
 WHERE (meta_key = 'company_name' AND meta_value LIKE '%apple%')
 OR (meta_key = 'company_location' AND meta_value LIKE '%paris%')
 GROUP BY meta_value
 ORDER BY meta_value

我想要公司名称包含关键字(例如“apple”)和公司位置包含关键字(例如“paris”)的所有结果,但 GROUP 仅按公司名称得出结果。

标签: mysqlsql

解决方案


推荐阅读