我有一个带有一些标签名称的表格,以及下面的专业领域
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这样的搜索功能。
答案 0 :(得分:4)
您可以使用order by
子句中的表达式来完成此操作。
select *
from tablename
where tags like '%Cars%' OR like '%Luxury%'
order by (tags like '%Cars%') + (tags like '%Luxury%') desc;
MySQL将布尔结果视为数字。因此,将它们加在一起会得到匹配的数量。