2017-07-19 14 views
1

I次の表があります。MYSQLカウントは、複数のカラムに一致する

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に完璧にマッチを持っている、との最高数で結果を注文したいの列の定義された数の全体にマッチした

たとえば、クエリが戻り結果はこれまでのところ

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) 

する必要があります= col1のU7、COL2 = y2と、COL3 = v7の、ですが、私は

を持っています
SELECT * FROM table WHERE col2 = 'y2' ORDER BY... 

私はあなたが試合を一つずつ評価する必要がどのような句

+0

この種の問題は、デザインが悪い – Strawberry

答えて

1

順に入れて確認されませんでした。私はそのためにif() functionaを使用します:

SELECT * FROM table WHERE col2 = 'y2' 
ORDER BY if(col1='u7',1,0) + if(col3='v7',1,0) + ... desc 
関連する問題