如何在sql查询中添加自定义排序顺序?

时间:2014-01-11 03:10:08

标签: mysql search

我有一个带有一些标签名称的表格,以及下面的专业领域

TID  TAGS
1    Cars
2    Luxury Cars
3    4 wheel drive cars

我有一个像

这样的查询
select * from tablename where tags like '%Cars%' OR like '%Luxury%';

现在我得到了结果,但我想显示第一行中包含最多关键字的标签。

例如:如果我通过了Luxury和Cars,那么我想得到如下结果。

Luxury Cars
Cars
4 wheel drive cars

我希望你理解我的意思?

还有一件事,我想知道有没有其他好方法可以做到这一点。 我想要像google这样的搜索功能。

1 个答案:

答案 0 :(得分:4)

您可以使用order by子句中的表达式来完成此操作。

select *
from tablename
where tags like '%Cars%' OR like '%Luxury%'
order by (tags like '%Cars%') + (tags like '%Luxury%') desc;

MySQL将布尔结果视为数字。因此,将它们加在一起会得到匹配的数量。