У меня есть большая таблица, и я построил два запроса для первого запроса первых двух столбцов, а затем других столбцов. Мое намерение, очевидно, разместить первые 2 столбца данных сверху, а затем добавить данные других столбцов ниже. Вот запрос.sql объединить два запроса в одном и SORT BY
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)
Это работает нормально, но это слишком медленно. Есть ли способ сделать это быстрее. Потому что я чувствую, что делаю ненужные ВЫБОРЫ (4). Может быть, я могу сделать что-то подобное (я видел это предложение здесь на Stackoverflow):
SELECT *
FROM
(
SELECT *, 1 sortby FROM TABLE_A
UNION ALL
SELECT *, 2 sortby FROM TABLE_B
) dum
ORDER BY sortby
Но я понятия не имею, как это сделать для моего случая.
Спасибо большое.
Почему вам нужны результаты первого запроса на вершине тех из второго запроса? –
Это технический словарь, и слова в первых столбцах важнее показать в первую очередь. Слова из столбцов впоследствии менее важны. – inrob
Удалите, как если бы вам нужны точные результаты, используйте = 'WHERE I = 'query' OR J = 'query'' – Mihai