2017-07-08 2 views
0

MYSQLクエリを正しくORDER BYしようとしています。最短の長さのクエリ、2番目の最短のクエリ、3番目の最短のクエリを含めるにはrand()が必要です。 MYSQLだけでそれを行う方法はありますか?MYSQL固有の検索

SELECT input FROM tableName WHERE input LIKE '%one%' ORDER BY length(input) ASC, rand() limit 1; 

one 
one one 
one one one 
one one one one 

この場合、クエリには最小の長さのrand()が含まれます。それはランダムにこれらのいずれかを選択するように

one 
one one 
one one one 

:だから、基本的に、私は含める)(RANDを必要としています。

+0

を返すのだろうか? – Ravi

+0

最短が最初に来るように「ASC」(昇順)を発注しています。あなたは最長を得るために 'DESC'を注文する必要があります – colburton

+0

@ravi私は質問を編集しました。 – frosty

答えて

0
order by length(input) asc limit 3; 

それはあなたの期待出力が何であるかを

one 
one one 
one one one