我有一个大表,我构建了两个查询,首先查询前 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
但我不知道如何为我的情况做这件事。
非常感谢。