Php 直接从列中获取列表';使用MySQL保存数据

Php 直接从列中获取列表';使用MySQL保存数据,php,sql,mysql,list,transpose,Php,Sql,Mysql,List,Transpose,让我们假设我不得不面对很多有很多猫的祖母。我有一只餐桌猫奶奶: granny_id | kitty_name -------------------- 1 Kizzy 1 Jimmy 1 Katty 2 Georges 2 Albert 3 Panther 我想检索granny 1 cat的列表,也就是说,获取类似的内容(使用php语法) 然而,查询 SELECT kitty

让我们假设我不得不面对很多有很多猫的祖母。我有一只餐桌猫奶奶:

granny_id | kitty_name
--------------------
1           Kizzy
1           Jimmy
1           Katty
2           Georges
2           Albert
3           Panther
我想检索granny 1 cat的列表,也就是说,获取类似的内容(使用php语法)

然而,查询

SELECT kitty_name WHERE granny_id = 1
返回类似于

array
(
   array('kitty_name' => "Kizzy"),
   array('kitty_name' => "Jimmy"),
   array('kitty_name' => "Katty")
)
这是非常合乎逻辑的,因为我可以通过类似的查询获取两个或更多字段。很明显,我可以映射这个数组来获得我想要的,但是,我想知道是否有一种(简单的)方法可以直接从mysql获得它


谢谢。

包装器库通常会处理此问题,例如,具有以下方法:


包装器库通常会处理此问题,例如,具有以下方法:

将为您提供逗号分隔的列表,您可以
将其分解为数组

MySQL
不支持本机数组数据类型。在
PostgreSQL
中,您可以执行以下操作:

SELECT  ARRAY
        (
        SELECT  kitty_name
        FROM    mytable
        WHERE   granny_id = 1
        ) AS kitties
,这将为您提供一个本机
PHP
数组

将为您提供逗号分隔的列表,您可以
将其分解为数组

MySQL
不支持本机数组数据类型。在
PostgreSQL
中,您可以执行以下操作:

SELECT  ARRAY
        (
        SELECT  kitty_name
        FROM    mytable
        WHERE   granny_id = 1
        ) AS kitties

,这将为您提供一个本机
PHP
数组。

好的,是的,但我想知道是否可以直接从mysql获得它。好的,是的,但我想知道是否可以直接从mysql获得它。谢谢,即使我不能使用PostgreSQL解决方案,我的好奇心也得到了满足。然而,逗号分隔的列表是危险的,如果某只猫被命名为“哦,你是一只可爱的小猫!!”?@hlanak,很好的后续问题。您需要处理自己的字段分隔符(您可以通过分隔符在组_CONCAT中指定)和转义。例如,您可以在链接之前对字段进行HEX()编码。谢谢,即使我不能使用PostgreSQL解决方案,我的好奇心也会得到满足。然而,逗号分隔的列表是危险的,如果某只猫被命名为“哦,你是一只可爱的小猫!!”?@hlanak,很好的后续问题。您需要处理自己的字段分隔符(您可以通过分隔符在组_CONCAT中指定)和转义。例如,您可以在链接之前对字段进行HEX()编码。
SELECT  GROUP_CONCAT(kitty_name) 
FROM    mytable
WHERE   granny_id = 1
SELECT  ARRAY
        (
        SELECT  kitty_name
        FROM    mytable
        WHERE   granny_id = 1
        ) AS kitties