我有一個字段「order_number」的數據庫設置爲INT在奇數場合的訂單號將需要有一個尾隨r例如2100r明顯INT只會接受數字,並將數字排序正確的ASC或DESC如果我使用VARCHAR來克服這個限制,它將正確接受尾隨r字符,但不會按數字順序正確排序數字,有沒有辦法可以強制INT選項接受一個字符?Mysql INT與一個字符
1
A
回答
0
你可以在MySQL中使用CAST
函數,但在將新數據插入表之前,使用類型轉換將order_number
存儲爲int是個好習慣。
SELECT CAST(int_col AS CHAR);
SELECT CAST(char_col AS unsigned INTEGER);
0
不,沒有這樣的選擇。
您應該可能使用VARCHAR
列的訂單號和一個單獨的列(可能INT
)只用於排序;根據插入和更新行時的順序號填充幫助程序列。
1
您需要將您的賬戶ID存儲爲字符串,如果其中任何一個包含字母。但只要字母總是後綴,您就可以正確命令它們。無論您的AccountID值是否具有前導空格,這都有效。
SELECT *
FROM Account
ORDER BY CAST(AccountID as UNSIGNED INTEGER), AccountID
這將按數字排序,然後通過詞法排序處理任何相等的數字。
http://sqlfiddle.com/#!2/a16bf/8/0
如果你想用「r」命令,在他們樸素的朋友有相同數量的顯示,你可以這樣做:
SELECT *
FROM Account
ORDER BY CAST(AccountID as UNSIGNED INTEGER), AccountID DESC
0
嘗試使用這種方式字符串轉換爲數字(number_string * 1),例如 -
SELECT * FROM table ORDER BY column * 1;
0
不,不可能。正如@Jon所說,沒有其他選項可以強制INT
字段保留VARCHAR
數據。
相關問題
- 1. MySQL的字符與INT
- 2. 字符串與INT與+號
- 3. 有一個字符串或int與一個屬性綁定
- 4. 比較一個對象的int變量與一個字符串
- 5. 做一個字符串的0和1爲一個int,到與ASCII字符VAL
- 6. Mysql字符串 - Int比較
- 7. MYSQL - int或短字符串?
- 8. 的MySQL與符號第一個字母
- 9. 字符串字節爲一個int
- 10. 添加一個字符串和int一個字符串
- 11. 比較一串數字與一個int
- 12. 連接字符與int
- 13. MySQL INT(x)與INT(x + 1)
- 14. 用一個int和一個字符串連接一個字符並不奇怪
- 15. Julia一個字符串的Int值
- 16. 轉換字符數組爲一個int
- 17. 將一個字符串轉換成int
- 18. 返回一個字符串和int
- 19. 分配字符串到一個int?
- 20. 爲-1一個字符或INT列
- 21. Ç - 獲取字符串從一個int
- 22. 將一個字符串轉換成INT
- 23. Mysql按部分字符串排序OR符號後一些int
- 24. 比較一個字符從一個MySQL數據庫與PHP
- 25. mySQL VARCHAR(256)+ mySQL INT =多少個字節?
- 26. 如何從一個字符中減去一個數字(int)
- 27. 將一個字節的字符串轉換爲一個unsigned int
- 28. 鑄造一個字符串,一個int從一個JTextField在Java
- 29. 字符串分割到兩個陣列一個int和一個字符串
- 30. 添加兩個int字符連成一個字符數組或字符串