0

次のような where in クエリを使用すると...

SELECT 
ID, A, T
FROM `table1`               
WHERE (A,T)             
IN ($query)

結果をクエリと同じ順序にする方法はありますか?

$query が ("David Crock", "Big Crocks"), ("Annie Smith", "My Life") の場合

結果は順序付けられます

342 David Crock Big Crocks
12 Annie Smith My Life
4

2 に答える 2

2

$query が SELECT ステートメントの場合は、代わりに結合してください。

それがリテラル値のセットである場合は、それらを自動インクリメント ID などの順序で一時テーブルに挿入し、join+order by または ... を実行します。

SELECT 
ID, A, T
FROM `table1`               
WHERE A             
IN ('David Crock', 'Annie Smith')
ORDER BY LOCATE(A, 'David Crock,Annie Smith');

(申し訳ありませんが、多値の 'IN' ステートメントに遭遇したことがないため、どのように機能するかわかりません。機能しますか?)

于 2013-10-10T15:02:11.533 に答える
1

通常、このマッピングはアプリケーション レイヤーで行う必要があります。これは、すべての関連情報がある唯一の場所です。テーブルを使用して正しい順序で並べ替えることは可能TEMPORARYですが、これは避けるのが最善です。

于 2013-10-10T14:54:30.623 に答える