我想使用group_concat作为数据数组返回从db检索的值.是否可以在mysql查询中执行此操作?或者我是否需要将数据分解为数组?
GROUP_CONCAT(sh.hold_id) as holds
Run Code Online (Sandbox Code Playgroud)
返回此
[holds] => 3,4
Run Code Online (Sandbox Code Playgroud)
我希望它返回:
[holds] => array(3,4)
Run Code Online (Sandbox Code Playgroud)
Mat*_*ari 14
正如我在评论中所说的那样:你需要使用这样的php代码将数据分解为数组:
$holds = explode(',', $holds);
Run Code Online (Sandbox Code Playgroud)
因为mysql没有数据类型的概念.
从MySQL 5.7.22开始,使用 JSON_ARRAYAGG() 方法可以实现这一点
阅读更多:https ://dev.mysql.com/doc/refman/5.7/en/aggregate-functions.html#function_json-arrayagg
例子:
SELECT JSON_ARRAYAGG(category.slug) as categories From categories
Run Code Online (Sandbox Code Playgroud)
如果您需要在 MySQL 级别上执行此操作,那么您可能会将其解析为对象。您可以执行以下操作
SELECT CONCAT("[", GROUP_CONCAT(category.name), "]") AS categories
From categories
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12826 次 |
最近记录: |