2014-10-10 6 views
0

Мне нужно добавить фиктивную строку в конце набора результатов в mysql без использования UNION [ALL].Добавить строку в результирующий набор без использования соединения mysql

Я знаю, что mysql не поддерживает полное соединение, поэтому взлом не будет работать здесь.

Я пробовал свои силы, но не мог понять?

+2

Что вы пытались до сих пор? – ssedano

ответ

0

Поскольку вы не предоставили никакого SQL-кода, и вы не указали содержимое фиктивной строки, я могу только предположить, что вы можете решить какую-то загадку SQL и готовы к любому решению, даже к уродливому.

Рядом с 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 ...

+0

Это действительно круто взломать .. спасибо .. – user2407394

Смежные вопросы