gpt4 book ai didi

php - SQL 将 ORDER BY 结果作为数组返回

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

是否可以将组作为关联数组返回?我想知道纯 SQL 解决方案是否可行。请注意,我发布了我可能会不必要地使事情变得更复杂,但这主要是为了让我了解 SQL 的强大功能。

我的问题:我在数据库中有一个单词列表,应该按字母顺序排序并根据单词的第一个字母分组到不同的组中。

例如:

ape
broom
coconut
banana
apple

应该返回为

array(
'a' => 'ape', 'apple',
'b' => 'banana', 'broom',
'c' => 'coconut'
)

所以我可以轻松地按首字母创建排序列表(即单击“A”仅显示以 a 开头的单词,“B”以 b 等开头的单词。这应该使我更容易在一个查询中加载所有内容并制作基于 JavaScript 的排序列表,即无需重新加载页面(或使用 AJAX)。

旁注:我正在使用 PostgreSQL,但 MySQL 的解决方案也可以,因此我可以尝试将其移植到 PostgreSQL。脚本语言是PHP。

最佳答案

MySQL:

SELECT LEFT(word, 1) AS first_letter, 
GROUP_CONCAT(word) AS word_list
FROM MyTable
GROUP BY LEFT(word, 1);

PostgreSQL 8.4:

SELECT SUBSTRING(word FOR 1) AS first_letter, 
ARRAY_TO_STRING(ARRAY_AGG(word), ',') AS word_list
FROM MyTable
GROUP BY SUBSTRING(word FOR 1);

参见 http://mssql-to-postgresql.blogspot.com/2007/12/cool-groupconcat.html有关在 PostgreSQL 中模拟 MySQL 的 GROUP_CONCAT() 的更多信息。

参见 http://www.postgresonline.com/journal/index.php?/archives/126-PostgreSQL-8.4-Faster-array-building-with-array_agg.html有关 ARRAY_AGG() 的更多信息。

关于php - SQL 将 ORDER BY 结果作为数组返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2954151/

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