过去一天我一直在读这个(甚至在这里),但还没有找到合适的资源,所以我又把它放在那里了:)
看看这两个查询:
SELECT DISTINCT transactions.StoreNumber FROM transactions WHERE PersonID=2 ORDER BY transactions.transactionID DESC;
和
SELECT GROUP_CONCAT(DISTINCT transactions.StoreNumber ORDER BY transactions.transactionID DESC SEPARATOR ',') FROM transactions WHERE PersonID=2 ORDER BY transactions.transactionID DESC;
从我读过的所有内容中,我希望这两个查询返回相同的结果,第二组分组为 CSV。他们不是。
查询 1 的结果集(将每个值描绘在自己的行中,此处格式化结果很麻烦):
'611' '345' '340' '310' '327' '323' '362' '360' '330' '379' '356' '367' '375' '306' '354' '389' '343 ''346''357''733''370''347''703''355''341''342''358''351''319''365''372''368''353'' 363''349''369''336''364''202''366''416''731'
Result Set for query 2: 611,379,375,389,703,355,351,372,368,362,342,365,353,341,733,347,336,319,354,306,345,364,202,358,370,343,366,349,356,367,369,416,323,346,731,360,363,330,310,357,340,327
如果我删除 DISTINCT 子句,结果会对齐。
谁能指出我对上述查询之间的区别做错了什么?
从每个查询中删除 DISTINCT 返回相同结果的事实表明 DISTINCT 在 GROUP_CONCAT 中存在问题。在 GROUP_CONCAT 之外执行 GROUP BY 会导致返回多行,这不是我想要的。
关于如何按 TransactionID DESC 的顺序获取 StoreNumber 的 GROUP_CONCAT DISTINCT 列表的任何想法?
谢谢大家