假设我们有一个查询如下:
从 my_table 中选择 a、b、c ORDER BY 最后为空
有没有办法定义查询
从 my_table 中选择 a、b、c
最后“a”列为空,无需排序?
线上有事:
从 my_table 中选择 a、b、c,其中最后一个为空
基本上我想获得非排序选择的速度,并具有一些排序功能。
最后
列为空,无需排序?a
UNION ALL
浮现在脑海中:
SELECT a, b, c FROM my_table
WHERE a IS NOT NULL
UNION ALL
SELECT a, b, c FROM my_table
WHERE a IS NULL;
如果两个部分之一相对较小,则罕见情况的部分索引将使速度更快。
但是请看:
所以你可能必须确保这两个部分不会混合。
最佳解决方案取决于您的设置和要求的详细信息。