gpt4 book ai didi

mysql - 分组但如果空白则忽略

转载 作者:行者123 更新时间:2023-11-29 14:53:58 25 4
gpt4 key购买 nike

我正在尝试对列 m_group_name 进行分组(或至少使其唯一),除非该组为空。这基本上是为了查看还没有组的内容(然后可以编辑以将其放入组中),同时能够查看现有的组。

例如;

id  |  m_group_name
---------------------
1 | Red
2 | Blue
3 |
4 | Red
5 |

理想情况下,会产生 1 个红色、1 个蓝色和 2 个空白。

我尝试将空白设置为 NULL 并为其指定一个 UUID 值(在改编了 Stackoverflow 上找到的类似内容之后),但似乎使每个 NULL 具有相同的值。

SELECT *, IFNULL(m_group_name,UUID()) AS m_group FROM m GROUP BY m_group

老实说,理想情况下我不想使用 NULL

编辑:意识到示例中“m_group_name”被错误地标记为“group” - 已更正。

最佳答案

这种方法行不通,因为 UUID() 函数将为每个查询返回一个值,而不是为每行返回一个单独的值。

您可以使用主键:

SELECT *, IFNULL(m_group_name,id) AS m_group FROM m GROUP BY m_group

或者您可以使用不同的函数(例如 RAND())为每行生成单独的值。如果您想要一个字符串值,您可以对其应用像 MD5() 这样的哈希函数:

SELECT *, IFNULL(m_group_name,md5(rand())) AS m_group FROM m GROUP BY m_group

关于mysql - 分组但如果空白则忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5091848/

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