2014-01-30 18 views
0

我想通過使用mysql的IN()函數來弄清楚一些情況。
的問題是:
通過過濾器獲取數據的一些列如下所示:
MySQL IN()函數問題 - 使用字母數字值

SELECT * FROM TABLE WHERE COL IN (val1,val2,val3....) 

及其對數字工作價值觀像... WHERE COL IN (01,02,03,04..)
但它不工作,如果值包括阿爾法字母像(D01,D02,R01..) ,它將工作,如果價值將是("D01","D02",...)
我想獲得一些建議,如果有人已經面對這件事情。


謝謝。

+0

列名,字符串和數字之間的差異應在任何SQL手冊的第一頁中解釋。 –

回答

1
SELECT * FROM TABLE WHERE COL IN (val1,val2,val3....) 

MySQL將字母數字中的所有標籤(列標籤或行中的值)識別爲字符類型。 因此,

WHERE COL IN (01,02,03,04..) 

01,02 ..被認可整數類型會從表中返回值。

(D01,D02,R01..) 

運行這將返回一個錯誤語句。 正如我之前提到的,必須使用char類型,因此必須使用「'或」「。

@Álvaro我同意。

我希望我已經清除了你的疑惑,至少在某種程度上。

+0

謝謝,我做了一些字符串替換,爆炸並重新加入,並創建了一個字符串,如「D01」,「U0」和它的工作。 –