查看此数组,可以看到只有foo6值与每个父键不同:
Array ( [0] => Array ( [foo1] => Apple [foo2] => Banana [foo3] => Carrots [foo4] => Deer [foo5] => Feather [foo6] => Grapes ) [1] => Array ( [foo1] => Apple [foo2] => Banana [foo3] => Carrots [foo4] => Deer [foo5] => Feather [foo6] => Heater ) [2] => Array ( [foo1] => Apple [foo2] => Banana [foo3] => Carrots [foo4] => Deer [foo5] => Feather [foo6] => Quail Eggs ) )
查询:
SELECT tpp.page_master_properties_style AS foo1,tpp.page_master_properties_bg AS foo2,tpp.page_master_properties_data AS foo3,tpp.page_properties_style AS foo4,tpp.page_properties_bg AS foo5,tpp.page_properties_data AS foo6,tobj.objects_script AS foo6 FROM templates t INNER JOIN category tc ON t.category_id = tc.category_id INNER JOIN page_properties tpp ON t.templates_id = tpp.templates_id INNER JOIN objects tobj ON t.templates_id = tobj.templates_id WHERE t.templates_id = ?
哪里? = 1
这可能是因为Table对象有多个templates_id条目:
+--------------+----------------+-----------------+ | objects_id | templates_id | objects_script | +--------------+----------------+-----------------+ | 1 | 1 | Grapes | | 2 | 1 | Heater | | 3 | 1 | Quail Eggs | | 4 | 2 | Milk | | 5 | 3 | Lemon | +--------------+----------------+-----------------+
我想知道是否有任何内置的MysqL函数可以将foo6组合成一个奇异的数组,例如实现这样的结果:
Array ( [foo1] => Apple [foo2] => Banana [foo3] => Carrots [foo4] => Deer [foo5] => Feather [foo6] => Array ( [0] => Grapes [1] => Heater [2] => Quail Eggs ) )
解决方法
这看起来像是MysqL arsenal中的
group_concat作业:
SELECT tpp.page_master_properties_style AS foo1,group_concat(tpp.page_properties_data) AS foo6,tobj.objects_script AS foo6 FROM templates t INNER JOIN category tc ON t.category_id = tc.category_id INNER JOIN page_properties tpp ON t.templates_id = tpp.templates_id INNER JOIN objects tobj ON t.templates_id = tobj.templates_id WHERE t.templates_id = ? GROUP BY tpp.page_master_properties_style AS foo1,tpp.page_properties_bg AS foo5
这会将tpp.page_properties_data中的所有行组合到唯一的数据行中并用逗号分隔 – 当您循环遍历数据集时,可以轻松地将explode分成数组.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。