大きなテーブルがあり、最初の 2 つの列を最初にクエリし、次に他の列をクエリする 2 つのクエリを作成しました。最初の 2 列のデータを上に置き、次に他の列のデータを下に追加するという私の意図は明らかです。これがクエリです。
SELECT * FROM (SELECT * FROM mytable WHERE A LIKE 'query%' OR G LIKE 'query%' ORDER BY LENGTH(A) )
UNION ALL
SELECT * FROM (SELECT * FROM mytable WHERE I LIKE 'query' OR J LIKE 'query' LIMIT 15)
これは問題なく動作しますが、遅すぎます。速くする方法はありますか?不要な SELECTS (4) を作成しているような気がするからです。多分私は次のようなものを作ることができます(私はこの提案をStackoverflowで見ました):
SELECT *
FROM
(
SELECT *, 1 sortby FROM TABLE_A
UNION ALL
SELECT *, 2 sortby FROM TABLE_B
) dum
ORDER BY sortby
しかし、私は自分の場合にそれを行う方法がわかりません。
どうもありがとう。