【发布时间】:2011-09-18 16:24:13
【问题描述】:
选择rideid, year, model, rating, SUM(Relevance) as SearchRelevance
从(
SELECT Rideid, year, model, rating, 1 as Relevance FROM cars
WHERE cat LIKE '%$keyword%'
联合所有
SELECT Rideid, year, model, rating, 1 as Relevance FROM cars
WHERE cat2 LIKE '%$keyword2%')
AS t GROUP BY Rideid ORDER BY SUM(Relevance) DESC ";
大家好,我在其他成员的帮助下得到了这个很棒的查询,它非常适合根据相关性系统对我的结果进行排序。这样,当我的两个搜索条件都被满足时,这些结果将首先排序。
问题在于,不符合两个条件(仅匹配 1 个条件)的结果显然会显示在结果中,但顺序较低。我真的想丢弃这些结果,有没有办法改进这个查询,以便返回的唯一结果是同时满足这两个条件的结果?
将 LIKE 更改为 = 不是一个选项,因为结果字段是 textareas,因此 mysql 需要在 textareas 中搜索关键字。
谢谢
【问题讨论】:
-
这些
$keyword和$keyword2值是否来自用户输入?确保您没有在此查询中引入 SQL 注入漏洞。