Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带字符的Mysql INT_Mysql_Int_Varchar - Fatal编程技术网

带字符的Mysql INT

带字符的Mysql INT,mysql,int,varchar,Mysql,Int,Varchar,我有一个mysql数据库,其中有一个字段“订单号”设置为INT在奇数情况下,订单号需要有一个尾随r,例如2100r。显然INT只接受数字,并正确排序数字ASC或DESC。如果我使用VARCHAR来克服此限制,它将正确接受尾随r字符,但不会正确排序数字顺序,有没有办法强制INT选项接受字符 您可以在MySQL中使用CAST函数,但在表中插入新数据之前,最好使用类型转换将order\u number存储为int SELECT CAST(int_col AS CHAR); SELECT CAST(c

我有一个mysql数据库,其中有一个字段“订单号”设置为INT在奇数情况下,订单号需要有一个尾随r,例如2100r。显然INT只接受数字,并正确排序数字ASC或DESC。如果我使用VARCHAR来克服此限制,它将正确接受尾随r字符,但不会正确排序数字顺序,有没有办法强制INT选项接受字符

您可以在MySQL中使用
CAST
函数,但在表中插入新数据之前,最好使用类型转换将
order\u number
存储为int

SELECT CAST(int_col AS CHAR);

SELECT CAST(char_col AS unsigned INTEGER);

您可以在MySQL中使用
CAST
函数,但在表中插入新数据之前,最好使用类型转换将
order\u number
存储为int

SELECT CAST(int_col AS CHAR);

SELECT CAST(char_col AS unsigned INTEGER);

不,没有这样的选择


您可能应该使用
VARCHAR
列作为订单号,使用单独的列(可能是
INT
)进行排序;根据插入和更新行时的订单号填充helper列。

否,没有此类选项


您可能应该使用
VARCHAR
列作为订单号,使用单独的列(可能是
INT
)进行排序;根据插入和更新行时的订单号填充帮助器列。

如果其中任何一个包含字母,则需要将帐户ID存储为字符串。但只要字母总是后缀,就可以正确排序。无论AccountID值是否有前导空格,此操作都有效

   SELECT *
     FROM Account
 ORDER BY CAST(AccountID as UNSIGNED INTEGER), AccountID 
这将进行数字排序,然后通过词汇排序处理任何相等的数字

如果您希望将“r”订单显示在具有相同号码的朴素朋友面前,您可以执行以下操作:

   SELECT *
     FROM Account
 ORDER BY CAST(AccountID as UNSIGNED INTEGER), AccountID DESC

如果任何帐户ID包含字母,则需要将其存储为字符串。但只要字母总是后缀,就可以正确排序。无论AccountID值是否有前导空格,此操作都有效

   SELECT *
     FROM Account
 ORDER BY CAST(AccountID as UNSIGNED INTEGER), AccountID 
这将进行数字排序,然后通过词汇排序处理任何相等的数字

如果您希望将“r”订单显示在具有相同号码的朴素朋友面前,您可以执行以下操作:

   SELECT *
     FROM Account
 ORDER BY CAST(AccountID as UNSIGNED INTEGER), AccountID DESC

尝试使用这种方式将字符串转换为数字(数字\字符串*1),例如-


尝试使用这种方式将字符串转换为数字(数字\字符串*1),例如-


不,不可能。正如@Jon所说,没有其他选项可以强制
INT
字段保留
VARCHAR
数据。

不,不可能。正如@Jon所说,没有其他选项可以强制
INT
字段保留
VARCHAR
数据