2015-08-16 31 views
0

我從我的服務器導入了一個MySQL錶轉儲到我的本地系統。我使用phpMyAdmin來查看我的本地MySQL數據庫。持有電子郵件的列顯示爲BLOB - 而不是實際的電子郵件。爲什麼導入的MySQL轉儲顯示某些列值爲BLOB?

當我按下「編輯」時,它顯示正確的電子郵件,但沒有列出。

我完全困惑,爲什麼會發生這種情況。任何人都可以提出解決方案

回答

0

它將blob的文本顯示爲一個佔位符,因爲blob數據類型(這是您的電子郵件存儲在其中的數據類型)的大小變化很大。對於大Blob大小,如果顯示數據,則可能需要100s +以上的屏幕才能顯示。

1

BLOB數據類型是爲了存儲任意的二進制數據(Binary Large OBject = BLOB),例如圖像或其他文檔。顯示現有值是沒有意義的。它看起來與在文本編輯器中查看圖像相同。

根據您使用的phpMyAdmin的版本,您有幾種選擇 - 我不知道這些選項。

  • 使phpMyAdmin默認顯示BLOB值。
  • 顯示完整結果集的BLOB值。

這兩種可能性覆蓋了an already asked question

但基本上,這只是對抗症狀,而不是治癒疾病。問題是:你爲什麼選擇電子郵件字段作爲BLOB?基本上,VARCHAR就足夠了。我不知道你正在運行的MySQL版本,但自從MySQL 5.0.3以來,VARCHAR可以是as large as 65k byte

ALTER TABLE 
    `table` 
CHANGE 
    `email` `email` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL; 

上面的查詢將字段email更改爲VARCHAR(255)。注意你喜歡使用的長度,以及字符集和整理。但在這種情況下,UTF-8應該很好。

相關問題