我正在尝试获取表格中某个字段的所有值。基本查询:
SELECT `field`
FROM `table`
WHERE `category`="something"
ORDER BY `other_field` DESC
这些字段的名称将返回到AJAX调用,所以我现在的想法是将此信息放入数组中,然后json_encode
该数组。
但它只是一个名单列表,它最终以JavaScript结尾。而我的“数组/编码”方法需要两次检查结果(当查询返回时,我必须将二维数组转换为一维)。如果可能的话,我想避免这种情况。
有没有更好的方法来做到这一点,我看不到?是否有MySQL函数将所有field
作为单个数组返回?
答案 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
中转义分隔符的出现次数