从mysqli获取一个数组

时间:2011-02-03 01:28:52

标签: php mysql

我正在尝试获取表格中某个字段的所有值。基本查询:

SELECT `field`
FROM `table`
WHERE `category`="something"
ORDER BY `other_field` DESC

这些字段的名称将返回到AJAX调用,所以我现在的想法是将此信息放入数组中,然后json_encode该数组。

但它只是一个名单列表,它最终以JavaScript结尾。而我的“数组/编码”方法需要两次检查结果(当查询返回时,我必须将二维数组转换为一维)。如果可能的话,我想避免这种情况。

有没有更好的方法来做到这一点,我看不到?是否有MySQL函数将所有field作为单个数组返回?

1 个答案:

答案 0 :(得分:3)

您可以尝试使用GROUP_CONCAT获取一行中的所有field值,然后在php中将其转换为数组explode。我不确定它是否比迭代收集更快。
更新一个简短的查询示例。

SELECT GROUP_CONCAT(`field` ORDER BY `order_field` DESC SEPARATOR '|')
FROM `table`
WHERE `category`="something";

*注意:在选择分隔符时,请确保它不会出现在field的值中。例如,使用REPLACE

也可以在field中转义分隔符的出现次数