2010-05-02 54 views
0

在服務器和客戶端之間傳遞儘可能少的數據是至關重要的。因此我想到了使用mysql的Compress()函數。爲了獲得最大壓縮率,我還希望將所有結果連接成一個大字符串(或MySql允許的幾個最大長度),以允許類似的結果被壓縮,然後壓縮這些/那個字符串。使用Compress()和連接結果最小化MySQL輸出?

第一問題(串聯MySQL的結果):

SELECT name,age 
FROM users 

返回10個結果。我想將所有這些結果連接在一個格式中: 姓名,年齡,姓名,年齡,姓名,年齡等等。這可能嗎?

第二個問題(從上面壓縮的結果)

當我comstructed串聯的字符串如上面我想壓縮。如果我這樣做:

SELECT COMPRESS('myname'); 

然後它只是給我作爲輸出字符' - ' - 有時它甚至會返回不可打印的字符。如何獲得COMPRESS()以返回一個壓縮的可打印字符串,我可以使用ex ASCII編碼進行傳輸?

+0

對於只有10個結果的查詢,壓縮字符串不可能比原始字符串小得多。 – 2010-05-02 15:46:55

+0

以上只是一個例子。真正的查詢要大得多。 – johnrl 2010-05-02 15:48:39

回答

3
  1. 您可能要牛逼Ø調查一個可以在內部建立一個字符串並返回的存儲過程。就其性質而言,MySQL不會將「垂直」查詢結果轉換爲「水平」查詢結果,這不是關係數據庫管理系統的用處。這是更多的顯示問題。唯一的例外是使用group_concat(),如果您正在使用分組進行某種連接查詢。

  2. COMPRESS()返回一個二進制字符串,所以毫不奇怪,你偶爾會得到不可打印的字符 - 它不打算返回「可讀」的東西。同樣,它將4個字節添加到壓縮字符串中以表示未壓縮字符串的長度,因此壓縮5個字節或更少不會節省任何東西。