查询是这样的:
select title from sample where
title like '%php%' or
title like '%html%' or
title like '%css%' or
title like '%javascript%'
我想按照匹配条件的数量订购记录。
答案 0 :(得分:1)
您可以通过在order by
以及where
中添加条件来实现此目的:
select title
from sample
where title like '%php%' or
title like '%html%' or
title like '%css%' or
title like '%javascript%'
order by ((title like '%php%') +
(title like '%html%') +
(title like '%css%') +
(title like '%javascript%')) desc;
在数值上下文(例如+
)中,MySQL将布尔表达式视为整数,其中1表示true,0表示false。
对于MySQL以外的数据库,请使用case
语句:
order by ((case when title like '%php%' then 1 else 0 end) +
(case when title like '%html%' then 1 else 0 end) +
(case when title like '%css%' then 1 else 0 end) +
(case when title like '%javascript%' then 1 else 0 end)) desc;