我有一张桌子,我需要根据一个单词最常出现的情况对行进行排序,是的。更多的是,它将是最高点的一条线,并将行数限制为五。
------------------------------------------------------------------------
id | logo | feature1 | feature2 | feature3 | feature4
------------------------------------------------------------------------
1 | img1.png | yes | yes | yes | info
------------------------------------------------------------------------
2 | img2.png | no | no | no | yes
------------------------------------------------------------------------
3 | img3.png | yes | info | yes | info
------------------------------------------------------------------------
4 | img4.png | yes | yes | info | yes
ID为1或4的第一行 ID为1或4的第二行 ID为3的第三行 ID为2的第四行
答案 0 :(得分:1)
这样的东西可以给你你想要的东西:
select id, logo, feature1, feature2, feature3, feature4
from your_table
order by ((feature1='yes') + (feature2='yes') + (feature3='yes') + (feature4='yes')) desc
limit 5
答案 1 :(得分:0)
在所有要素列上放置一个FULLTEXT索引并执行简单的布尔搜索
ALTER TABLE t ADD FULLTEXT idx_name (feature1, feature2, feature3,feature4);
SELECT * FROM T WHERE MATCH (feature1, feature2, feature3,feature4) AGAINST ('word');