我有下表:
id col1 col2 col3 col4 ....
1 x3 y2 v7 i7
2 x8 u4 r1 o2
3 m7 w2 x3 l1
4 j5 y2 t2 a5
5 u7 y2 v7 a5
6 b7 y2 x3 a5
我希望与col2完美匹配,并按照定义的列数匹配的最大数量排序结果
例如,查询为col1 = u7,col2 = y2,col3 = v7,返回结果应为
id col1 col2 col3 col4 ....
5 u7 y2 v7 a5 (3 matches)
1 x3 y2 v7 i7 (2 matches)
4 j5 y2 t2 a5 (1 match)
6 b7 y2 x3 a5 (1 match)
到目前为止,我有
SELECT * FROM table WHERE col2 = 'y2' ORDER BY...
我不确定将什么放入ORDER BY子句
答案 0 :(得分:1)
你必须逐一评估比赛。我会使用if()
函数:
SELECT * FROM table WHERE col2 = 'y2'
ORDER BY if(col1='u7',1,0) + if(col3='v7',1,0) + ... desc