我有一个字段“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. MYSQL - int或短字符串?
- 5. 字符串字节为一个int
- 6. 比较一串数字与一个int
- 7. 用一个int和一个字符串连接一个字符并不奇怪
- 8. Ç - 获取字符串从一个int
- 9. 将一个字符串转换成INT
- 10. 为-1一个字符或INT列
- 11. 将一个字符串转换成int
- 12. 返回一个字符串和int
- 13. Mysql按部分字符串排序OR符号后一些int
- 14. 比较一个字符从一个MySQL数据库与PHP
- 15. mySQL VARCHAR(256)+ mySQL INT =多少个字节?
- 16. 将一个字节的字符串转换为一个unsigned int
- 17. 字符串分割到两个阵列一个int和一个字符串
- 18. 添加两个int字符连成一个字符数组或字符串
- 19. MYSQL在字符串中找到INT
- 20. 四个1字节字符到一个4字节int?
- 21. 如何将一个字符串数组与一个int数组联系起来
- 22. 在字符串中的字符之前选择第一个int
- 23. 如何添加一个字符串和int并按int排序
- 24. 如何将字符串与int转换为字符串与双?
- 25. 与MySQL如何存储INT不一致?
- 26. 修剪前几个字符与MySQL
- 27. do-while循环需要一个int还是一个字符串?
- 28. 检查一个字符串是否包含一个int
- 29. 我如何添加一个int到一个字符串
- 30. 当给定一个字符串时,返回一个INT - MIPS