質問
ようにしている以下のクエリ:
SELECT A,B,C FROM table WHERE field LIKE 'query%'
UNION
SELECT A,B,C FROM table WHERE field LIKE '%query'
UNION
SELECT A,B,C FROM table WHERE field LIKE '%query%'
GROUP BY B ORDER BY B ASC LIMIT 5
このクエリで力を合わせて、ちょっと新お疲.しかし、この結果セットが反映の結果からクエリ#3以前の結果からクエリー#1は望ましくない.
が優先される結果としてすべてのためのクエリー#1、そのすべてのためのクエリー#2のすべての検索#3?ならないようにしたいことはPHPでいまでもないと制御のための結果が最初のクエリを表示しないようにできる.
解決
も実際に試したほうがよいでしょうを含む第四の柱を記載したテーブルから、その秩序やグループでは:
SELECT A,B,C, "query 1" as origin FROM table WHERE field LIKE 'query%'
UNION
SELECT A,B,C, "query 2" as origin FROM table WHERE field LIKE '%query'
UNION
SELECT A,B,C, "query 3" as origin FROM table WHERE field LIKE '%query%'
GROUP BY origin, B ORDER BY origin, B ASC LIMIT 5
他のヒント
追加の追加カラムではハードコードされた値に使用するソート、全体のresultsetのような:
SELECT A,B,C,1 as [order] FROM table WHERE field LIKE 'query%'
UNION
SELECT A,B,C,2 as [order] FROM table WHERE field LIKE '%query'
UNION
SELECT A,B,C,3 as [order] FROM table WHERE field LIKE '%query%'
GROUP BY B ORDER BY [order] ASC, B ASC LIMIT 5
きんでしsubselectのようなもの
SELECT * FROM (
SELECT A,B,C FROM table WHERE field LIKE 'query%'
UNION
SELECT A,B,C FROM table WHERE field LIKE '%query'
UNION
SELECT A,B,C FROM table WHERE field LIKE '%query%'
) ORDER BY B ASC LIMIT 5
選択なa、b、cから 選択A、B、C、1とoからのテーブルフィールド'エ%' 組合 選択A、B、C、2などからテーブルフィールド'%query' 組合 選択A、B、C、3とoからのテーブルフィールド'%エ%' ) ORDER BY o ASC限5
もう私はそれができていました。あまりないと思いますを知る。
はわかりません
GROUP BY B ORDER BY B ASC LIMIT 5
なにのみ適用される最終選択しです。
はmysqlが実際にできるグループによる列がない集合体、その他のカラム?
編集:aaahh.いたように、これまでとは違ったmysqlを実際にいます。その特別バージョンの異(b)あります。私は仕ってみたいとする専門領域:)
がないということを意味注文していな組合の結果とも3つの別々のrecordsets、対処していくためにお客様のデータます。
私は最終的に(提明けましておめでとうござこのソリューションは、その少しの妥協の間に何が必要です。
SELECT * FROM
(SELECT A, B, C, "1" FROM table WHERE B LIKE 'query%' LIMIT 3
UNION
SELECT A, B, C, "2" FROM table WHERE B LIKE '%query%' LIMIT 5)
AS RS
GROUP BY B
ORDER BY 1 DESC
納5つの結果を総合し、種から第四回"欄に"もう必要な自然な結果セット(そ来AJAX)、ワイルドカードの結果セットの次ました。
:)
/mp
あvarientsのです。
'UNION' and 'UNION ALL'
ほとんどの場合だと思ったところにセブンイレブンがあEUのすべてとしていませんので重複排除か SELECT DISTINCT
間を設定できる結果にかなりの貯蓄の実行ます。
他人が示唆されている複数の結果セットが解しい注意この時間に敏感な用途に接続車輪より精度の落ちるという結果とは大幅により往復のワイヤーとサーバとクライアント
かわからない理由を必要とする連合のデータからのシングルテーブル
SELECT A
,B
,C
FROM table
WHERE field LIKE 'query%' or field LIKE '%query' or field LIKE '%query%'
GROUP BY B ORDER BY B ASC LIMIT 5