2012-07-30 17 views
0

說明基本上是問題。在MySQL中選擇輸出文件時,如何將ENUM轉換爲整數值?

我有一個CSV文件,我加載到我的數據庫中的表中。然後我(選擇*從表名到OUTFILE'...')並檢查兩個CSV是否相等。我這樣做是爲了確保數據庫正確加載。

我的問題是其中一個字段是一個ENUM類型。我用來加載表的CSV包含整數表示(出於我無法控制的原因),並且outfile CSV包含字符串表示。有什麼辦法讓我在創建outfile時將ENUM轉換爲整型值?我覺得這應該是一件容易的事情,但我無法在Google上找到答案。

注意:我必須爲許多不同的表格執行此操作,因此我很難單獨處理每個表格。

回答

0

您需要使用數字上下文來獲取枚舉的整數值。試試這個:

SELECT ..., enum_field+0, ... 

這將評估數值上下文中的enum_field,它將返回索引值。

+0

好的,謝謝,這個解決方案有效。但是,我試圖自動爲多個表執行此操作,並且這樣做需要我對待每個表的方式與下一個不同。 (即SELECT ... table1_enum_field ...),然後SELECT語言的另一個語句... table2_enum_field ...有什麼辦法可以更好地自動執行此操作嗎? – 2012-07-30 19:32:53

+0

@ nikhil.narula不幸的是,我不知道如何自動測試字段類型,然後對select中的字段應用不同的操作(如case語句等)。如果您將其編寫爲多行SQL腳本,則可以查看信息模式數據以獲取有關行類型的信息,然後對枚舉的這些提交名稱執行上述操作。 – 2012-07-30 19:39:49

相關問題