Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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_Sql_Database - Fatal编程技术网

Mysql SQL查询未正确执行描述

Mysql SQL查询未正确执行描述,mysql,sql,database,Mysql,Sql,Database,我有一个我不知道如何解决的问题。 我有一个疑问: $sql=“从传输中心选择*,其中状态为pris DESC“发出”订单” 我的数据库中有四个值,如pris: 0,4,8,26 因此,如查询所述,它们应按如下方式列出: 二十六 八, 四, 0 但不知怎的,它认为26的值是2.6(我想是吧?),因此26在4和0之间 有人能帮我解决这个问题吗?看起来您的列是一个VARCHAR类型,并且它的顺序与此类似。当您对一个VARCHAR进行排序时,每个字符从左到右,因此26在0到4之间 如果无法更改架构,

我有一个我不知道如何解决的问题。 我有一个疑问:

$sql=“从传输中心选择*,其中状态为pris DESC“发出”订单”

我的数据库中有四个值,如
pris
0,4,8,26

因此,如查询所述,它们应按如下方式列出:

  • 二十六
  • 八,
  • 四,
  • 0
但不知怎的,它认为26的值是2.6(我想是吧?),因此26在4和0之间


有人能帮我解决这个问题吗?

看起来您的列是一个VARCHAR类型,并且它的顺序与此类似。当您对一个VARCHAR进行排序时,每个字符从左到右,因此26在0到4之间

如果无法更改架构,可以尝试以下操作:

SELECT * FROM transfer_centre WHERE status = 'out' ORDER BY CAST(pris as SIGNED INTEGER) DESC 从状态为'out'的传输中心选择* 按强制转换顺序(PRI作为有符号整数)描述
注意:这与理想的解决方案相差甚远!如果列被视为一个数字,则应使用正确的类型更改架构。

您的列看起来是一个VARCHAR类型,并且排序也与之类似。当您对一个VARCHAR进行排序时,每个字符从左到右,因此26在0到4之间

如果无法更改架构,可以尝试以下操作:

SELECT * FROM transfer_centre WHERE status = 'out' ORDER BY CAST(pris as SIGNED INTEGER) DESC 从状态为'out'的传输中心选择* 按强制转换顺序(PRI作为有符号整数)描述
注意:这与理想的解决方案相差甚远!如果列被视为数字,则应使用正确的类型更改架构。

什么是
pris
?什么是
pris
?@M.Pedersen此答案可帮助您删除数据库。是的,如果此列被视为数字,您应该更改架构。@M.Pedersen此答案有助于终止数据库。是的,如果此列应视为数字,您应该更改架构。