我有以下数据
item category accounts
ITEM1 CATEGORY1 ACCOUNT1
ITEM2 CATEGORY1 ACCOUNT1
ITEM3 CATEGORY2 ACCOUNT2
ITEM4 CATEGORY2 ACCOUNT2
ITEM5 CATEGORY3 ACCOUNT3
ITEM6 CATEGORY3 ACCOUNT3
并且想知道什么是更好的方式,所以我可以像
那样输出它item category accounts
ITEM1 CATEGORY1 ACCOUNT1
ITEM2 CATEGORY1
ITEM3 CATEGORY2 ACCOUNT2
ITEM4 CATEGORY2
ITEM5 CATEGORY3 ACCOUNT3
ITEM6 CATEGORY3
我尝试过使用UNION:
SELECT
item,
category,
account
FROM t1
UNION
SELECT NULL,NULL,account from t1
但我得到的结果是
item category accounts
ITEM1 CATEGORY1 ACCOUNT1
ITEM2 CATEGORY1 ACCOUNT1
ITEM3 CATEGORY2 ACCOUNT2
ITEM4 CATEGORY2 ACCOUNT2
ITEM5 CATEGORY3 ACCOUNT3
ITEM6 CATEGORY3 ACCOUNT3
NULL NULL ACCOUNT1
NULL NULL ACCOUNT2
NULL NULL ACCOUNT3
有关如何使其成为可能的任何建议吗?谢谢
答案 0 :(得分:0)
你可以这样做:
SELECT @acct := null;
SELECT item, category, (if(@acct = account, '', @acct := account)) account FROM items;
但我不建议这样做,除非是为了更方便地查看mysql cli工具的结果。 (您可能还想调整选择查询并指定适当的ORDER BY。)