不使用union mysql将行添加到结果集

时间:2014-10-10 20:45:14

标签: mysql

我需要在mysql的结果集末尾添加一个虚拟行而不使用UNION [ALL]。

我知道mysql不支持完全加入,所以hack在这里不起作用。

我已尽力而为但无法得到任何想法?

1 个答案:

答案 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 ...

自行尝试