2011-02-03 103 views
2

我試圖獲取表中某個字段中的所有值。基本查詢:從mysqli獲取單個數組

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

這些字段的名稱將是迴歸到一個AJAX調用,所以我的想法,現在是得到這個信息到一個數組,然後json_encode數組。

但它只是一個名稱列表,它以JavaScript結束。而我的「數組/編碼」方法將需要兩次結果(當查詢返回時,我不得不將二維數組轉換爲一維)。如果可能,我想避免這種情況。

那麼有沒有更好的方法來做到這一點,我沒有看到?是否有MySQL函數將所有field作爲單個數組返回?

回答

3

您可以嘗試使用GROUP_CONCAT獲取一行中的所有field值,然後在php中將其轉換爲數組explode。我不確定它是否比迭代集合更快。
更新一個簡短的查詢示例。

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

*注意:在選擇分離器,確保它不會在field的價值觀發生。例如,使用REPLACE

+0

這也正是我所期待的。現在我可以直接將`GROUP_CONCAT`回顯爲JavaScript,並將其分割。謝謝。 – sdleihssirhc 2011-02-03 02:53:56