我需要在mysql的结果集末尾添加一个虚拟行而不使用UNION [ALL]。
我知道mysql不支持完全加入,所以hack在这里不起作用。
我已尽力而为但无法得到任何想法?
答案 0 :(得分:0)
由于你没有提供任何SQL,并且你没有提到虚拟行的内容,我只能猜测你可能正在解决某种SQL难题并准备好任何解决方案,即使是丑陋的。< / p>
除了UNION
,我能想到添加虚拟行的唯一方法是使用GROUP BY
子句和ROLLUP
。所以这是一个相当笨拙的方法:
SELECT
IFNULL(id, 'Dummy1') as First,
IFNULL(product, 'Dummy2') as product,
IFNULL(price, 'Dummy3') as price,
IFNULL(qty, 'Dummy4') as qty,
IFNULL(barcode, 'Dummy5') as Last
FROM
products
GROUP BY
id, product, price, qty, barcode
WITH ROLLUP
HAVING
Last <> 'Dummy5' or First = 'Dummy1'
使用此fiddle ...
自行尝试