gpt4 book ai didi

mysql - 使用 GROUP_CONCAT、GROUP BY、HAVING 选择

转载 作者:可可西里 更新时间:2023-11-01 06:55:57 25 4
gpt4 key购买 nike

我有一个带有 odd_id 的表,我想为不同的 ticket_id 选择组合。这是我的查询:

SELECT
ticket_id,
GROUP_CONCAT(odd_id) as oddsconcat
FROM ticket_odds
GROUP BY ticket_id

它给了我关注:

'28', '14472510,14472813,14472546,14472855,14472746,14472610,14472647'
'29', '14471149,14471138,14471125,14475603'
'30', '14471823,14471781,14471655,14471865,14471597,14471968,14471739,14471697,14471923'
'31', '14473874,14473814,14473862,14473838,14473790,14473802,14473826,14473850'
'32', '14471588,14472766,14471651,14471777,14471419'
'33', '14472647,14472605,14471650,14471734'
'34', '14471588,14472704,14471817'
'35', '14475279,14474499'
'282', '14472756,14472652,14472813'
'283', '14471588,14472766,14471419,14471777,14471651'
'284', '14474521'
'285', '14474529'
'286', '14474547'
'287', '14471134,14471199,14473636,14471242,14471398,14471237'

但是如果我使用 Having 函数,它不会给我结果。显然:它给了我以下内容:

SELECT
ticket_id,
GROUP_CONCAT(odd_id) as oddsconcat
FROM ticket_odds
GROUP BY ticket_id
HAVING oddsconcat = '14475279,14474499'

返回 ticket_id 35,每个人都很高兴,代码工作正常,但如果 oddsconcat 比这个大,它不会返回任何值。例如:

SELECT
ticket_id,
GROUP_CONCAT(odd_id) as oddsconcat
FROM ticket_odds
GROUP BY ticket_id
HAVING oddsconcat = '14473874,14473814,14473862,14473838,14473790,14473802,14473826,14473850'

最佳答案

我会把它重写为:

SELECT 
ticket_id,
GROUP_CONCAT(DISTINCT odd_id ORDER BY odd_id ASC) as oddsconcat
FROM ticket_odds
GROUP BY ticket_id
HAVING oddsconcat = .....

现在 oddsconcat 中的输出是确定性的,因为重复项被消除并且项目按升序排列。
这应该使匹配更容易。

关于mysql - 使用 GROUP_CONCAT、GROUP BY、HAVING 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7915903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com