Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/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
按字段排序mysql命令不';不起作用,给错了顺序_Sql_Mysql - Fatal编程技术网

按字段排序mysql命令不';不起作用,给错了顺序

按字段排序mysql命令不';不起作用,给错了顺序,sql,mysql,Sql,Mysql,我有一个奇怪的问题。我在mysql中尝试了以下命令: SELECT `type`, `bought` FROM cars WHERE owner = 'test' ORDER BY type 它在phpmyadmin中打印出来: type bought -------------------- 17 1281025497 22 1287708417 22 1287347244 24 1287708324

我有一个奇怪的问题。我在mysql中尝试了以下命令:

  SELECT `type`, 
         `bought` 
    FROM cars 
   WHERE owner = 'test' 
ORDER BY type
它在phpmyadmin中打印出来:

type    bought
--------------------
17      1281025497
22      1287708417
22      1287347244
24      1287708324
24      1287876461
6       1287896659
9       1287847238

这没有任何意义。17大于22,9小于6

类型列的类型显然是varchar或text(实际上是任何字符串类型)。必须使用整数类型。字符串“10”小于字符串“6”(1在6之前)是完全正常的


如果确实不想更改列的类型,可以将其强制转换为整数。

如果
类型
字符
字段,则这是正确的

如果它们是字符,你不是在比较数字6和24,而是在比较字符串“6”和“24”


“6”大于“2”,因此它位于后面。

您不需要将所有列都放在反勾号中。“bunded”很可能不是保留关键字,而且您没有在backticks中添加“cars”和“owner”,因此最好不要使用任何backticks,除非您实际上必须使用保留字作为列名(“type”可能是保留的;请查看MySQL文档)
SELECT `type`, `bought` FROM cars WHERE owner='test' ORDER BY CAST(`type` AS SIGNED)