gpt4 book ai didi

MySQL 不使用 UNION 从每个字母返回 1 行?

转载 作者:行者123 更新时间:2023-11-29 05:05:50 24 4
gpt4 key购买 nike

我想为字母表中的每个字母返回 1 行。例如,下表从名称 a 到 z。在生产数据库中,我有 1000 个名字。

id| name
1 | amy
2 | anna
3 | barry
4 | blake
5 | baron
6 | charles

我想要一个查询为每个字母返回 1 行。我知道如何使用 UNION 完成此操作,但如何在没有 UNION 的情况下在单个查询中完成此操作?

SELECT * FROM `table` WHERE name LIKE 'a%' LIMIT 1
UNION
SELECT * FROM `table` WHERE name LIKE 'b%' LIMIT 1
UNION
SELECT * FROM `table` WHERE name LIKE 'c%' LIMIT 1
UNION
SELECT * FROM `table` WHERE name LIKE 'd%' LIMIT 1

我期待返回的结果:

[0]=>amy
[1]=>barry
[2]=>charles

最佳答案

您需要按第一个字符分组。

SELECT name
FROM names
GROUP BY SUBSTRING(name, 1, 1);

参见 DEMO

关于MySQL 不使用 UNION 从每个字母返回 1 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48490887/

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