我在MySQL中有一個非常大的表。我使用CHAR(32)字段,其中包含MD5作爲字符串當然。我遇到了一個問題,我需要使用MySQL將其轉換爲十進制值。第三方工具運行查詢,因此編寫代碼來完成此操作並不是真正的選擇。將存儲的md5字符串轉換爲MySQL中的十進制值
MySQL不支持本地存儲十六進制值並將它們轉換爲整數。但它被掛起來從字符串轉換它。這是我迄今爲止所嘗試的(md5_key是我的列的名稱)
首先,我只是嘗試了UNHEX函數,但返回一個字符串,所以它給了我gooblygoop。我不會在這裏。接下來,我嘗試了CAST功能
SELECT CAST(CONCAT('0x',md5_key) AS UNSIGNED) FROM bigtable limit 1
結果= 0 顯示警告給我: 「截斷不正確INTEGER值: '0x000002dcc38af6f209e91518db3e79d3'」
,但如果我這樣做:
SELECT CAST(0x000002dcc38af6f209e91518db3e79d3 AS UNSIGNED);
我得到正確的十進制值。
所以我想我需要知道的是,有沒有辦法讓MySQL看到該字符串爲十六進制值? (我也嘗試將其轉換爲二進制,然後到UNSIGNED,但也沒有工作)。
在此先感謝!
謝謝!這似乎工作! – Cfreak 2009-12-18 15:36:22