ユーザーの基準の結果を表示するページで、データの一部の列のみを (速度のために) 表示し、ユーザーが後で必要に応じて列を追加できるようにしたいと考えています。コードは AJAX を使用してその間、基準に一致する元のデータが変更された可能性があり、表示されているテーブルが jQuery によって再ソートされた可能性があるため、元の WHERE 句を再度使用するよりも、元の WHERE 句を使用するよりも、表示されているテーブルから ID を取得し、それらをクエリに渡します。このようなクエリの例を考えてみましょう:
SELECT t2.OtherField FROM t1 LEFT JOIN t2 ON t1.JoinID=t2.JoinID
WHERE t1.MyID in (1417,2120,217,590,6566,11764)
ORDER BY FIND_IN_SET(t1.MyID,'1417,2120,217,590,6566,11764')
ここで、リスト内の ID の数がそれよりもはるかに多くなる可能性があると想像してください (ユーザーがよく考えていなければ、数百または数千にもなる可能性があります)。WHERE
andで同じ長いリストを繰り返すのFIND_IN_SET
は過剰に思えます。ID のリストを 1 回だけ使用して同じ結果を得る方法はありますか? これを試しましたが、うまくいきませんでした (最初の 6 つの結果は古いレコードであり、リストの 6 つではありません)。
SELECT t2.OtherField FROM t1 LEFT JOIN t2 ON t1.JoinID=t2.JoinID
ORDER BY FIND_IN_SET(t1.MyID,'1417,2120,217,590,6566,11764')
LIMIT 6
それとも、リストが繰り返されるためにクエリが巨大になっても問題ではありませんか? または、私がこれについてすべて間違っていて、あなたが別の考えを持っている場合は、それを聞いてみたい.