让我们假设我必须与许多养猫的祖母打交道。我有一张 table granny_cat :
granny_id | kitty_name
--------------------
1 Kizzy
1 Jimmy
1 Katty
2 Georges
2 Albert
3 Panther
我想检索 1 号猫的列表,即获取类似(使用 php 语法)的内容
array("Kizzy","Jimmy","Katty")
但是,查询
SELECT kitty_name WHERE granny_id = 1
返回类似的东西
array
(
array('kitty_name' => "Kizzy"),
array('kitty_name' => "Jimmy"),
array('kitty_name' => "Katty")
)
这是非常合乎逻辑的,因为我可以使用类似的查询获取两个或更多字段。我显然可以映射这个数组以获得我想要的,但是,我想知道是否有一种(简单的)方法可以直接从 mysql 中获取它。
谢谢。
最佳答案
SELECT GROUP_CONCAT(kitty_name)
FROM mytable
WHERE granny_id = 1
将为您提供以逗号分隔的列表,您可以将其展开
成一个数组。
MySQL
不支持 native 数组数据类型。在 PostgreSQL
中,您可以执行以下操作:
SELECT ARRAY
(
SELECT kitty_name
FROM mytable
WHERE granny_id = 1
) AS kitties
,这将为您提供原生 PHP
数组。
关于php - 使用 MySQL 直接从列的数据中获取列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1295478/