ユーザーの入力に基づいて在庫番号を検索するクエリがあります。私は入力に最もよく一致する上位5項目を見つけようとしています。在庫番号が正確に一致する場合は、その項目を最初に表示します。value =またはLIKEで検索するためのクエリの注文方法
だから、SELECT
ID, Stock
FROM `store_items`
WHERE Stock = '$query' OR Stock LIKE '%$query%' LIMIT 5
、私のデータベースに、私は以下の株式#の年代がある場合:
MC-10
MC-11
MC-12
MC-100
MC-102
MC-103
を私はMC-10
を検索、正確な結果は、それがLIKEであることその他の試合に続いて、最初に表示されるはずです:
MC-10
MC-100
MC-102
MC-103
私はそれを実現するために、このクエリのORDER BY
一部をどのように行うのですか?
ORDER BY CAST(SUBSTRING(Stock,LOCATE('-', Stock) +1, LENGTH(Stock) - LOCATE('-', Stock)) AS INT);
:あなたのクエリは次のようになりますhttp://stackoverflow.com/questions/7744108/order-rows-in-sql-query-based-on-which-rows-meet -condition-first – fonfonx