如何按列优先级排序mysql结果?

时间:2011-01-28 13:50:24

标签: mysql

如何按列优先级排序mysql结果?

实施例。我有一个产品表,该表包含两列,产品名称(p.name)和产品说明(p.desc)。

用户应该能够输入关键字以在数据库中查找产品。

"p.name LIKE '%keyword%' OR p.desc LIKE '%keyword%'

我希望首先返回匹配p.name的结果,然后返回p.desc秒。

我将如何实现这一目标?

2 个答案:

答案 0 :(得分:11)

我会尝试像

这样的东西
ORDER BY (NOT (p.name LIKE '%keyword%'))

如果满足您的第一个条件,order by子句将评估为false。因此,这些记录将被推进。

修改
等号(=)可能错误地进入了问题。

答案 1 :(得分:1)

您应该像MATCH() ... AGAINST及更多here一样尝试MySQL全文搜索。然后按搜索排名和列排序。