Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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
CAST()函数MYSQL似乎不适合我?需要帮忙吗_Mysql_Mysql Workbench - Fatal编程技术网

CAST()函数MYSQL似乎不适合我?需要帮忙吗

CAST()函数MYSQL似乎不适合我?需要帮忙吗,mysql,mysql-workbench,Mysql,Mysql Workbench,大家好,我遇到的问题是,我试图使用CAST函数将一个列(其中值存储为varchar)更改为有符号的64位整数,以便我可以根据该列中整数的值对表进行排序。下面我将分享我在MYSQL中使用的代码和一个表的图像,以便您可以看到我正在使用的是什么。问题是,当我在运行代码后尝试按emp_id排序时,它仍然无法根据整数值正确排序,并且我不确定我做错了什么。非常感谢您的帮助 SHOW databases; USE ex; SHOW tables; SELECT * FROM string_sample; S

大家好,我遇到的问题是,我试图使用CAST函数将一个列(其中值存储为varchar)更改为有符号的64位整数,以便我可以根据该列中整数的值对表进行排序。下面我将分享我在MYSQL中使用的代码和一个表的图像,以便您可以看到我正在使用的是什么。问题是,当我在运行代码后尝试按emp_id排序时,它仍然无法根据整数值正确排序,并且我不确定我做错了什么。非常感谢您的帮助

SHOW databases;
USE ex;
SHOW tables;
SELECT * 
FROM string_sample;
SELECT CAST(emp_id AS SIGNED), emp_name,
FROM string_sample;

解决的问题似乎是导致问题的原因是,在我使用CASTemp_id作为签名后,当我将行更改为CASTemp_id作为emp_id签名时,我没有给它一个别名。表的行为正确,并将emp_id转换为int,这允许我按emp_id值正确排序。

你忘了“顺序”吗by'子句?即使使用ORDER by,它仍然不能正确排序,因为emp_id列存储为varchar,而不是整数,因此它仍然不能正确排序。我知道这与我使用CAST函数的方式有关,这是导致问题的原因。我只是不确定我用它做错了什么,或者我遗漏了什么。它只是因为某种原因没有将emp_id转换为整数。您还可以这样写:选择CASTemp_id作为有符号,emp_name,从string_sample order按CASTemp_id作为有符号;