Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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
SQL不使用php查询按降序排序_Php_Mysql - Fatal编程技术网

SQL不使用php查询按降序排序

SQL不使用php查询按降序排序,php,mysql,Php,Mysql,我有以下疑问: $query = "SELECT - AS - FROM - WHERE ID = '".$id."' ORDER BY 'PRIMARY' DESC LIMIT ".$start.", ".$limit.""; 然而,由于某种原因,查询总是以升序返回,即使我已经告诉它按降序返回 我不太清楚为什么会这样。当我通过phpMyAdmin执行查询时,它会正确返回,但PHP查询没有按降序列出结果 注意:查询中的-,

我有以下疑问:

$query = "SELECT - AS -
         FROM -
         WHERE ID = '".$id."'
         ORDER BY 'PRIMARY' DESC
         LIMIT ".$start.", ".$limit."";
然而,由于某种原因,查询总是以升序返回,即使我已经告诉它按降序返回

我不太清楚为什么会这样。当我通过phpMyAdmin执行查询时,它会正确返回,但PHP查询没有按降序列出结果


注意:查询中的-,是我截取的数据库中的名称。它们在实际查询中用正确的名称填充。

PRIMARY

$query = "SELECT - AS -
         FROM -
         WHERE ID = '".$id."'
         ORDER BY `PRIMARY` DESC
         LIMIT ".$start.", ".$limit."";

您的查询实际上根本没有排序

您正在按常量字符串
PRIMARY
排序,所有行的排序结果都将相等。

您是否尝试回显查询以确保它与您放入phpmyadmin中的查询相匹配您正在按常量值
'PRIMARY'
排序结果(始终相同) 例如,您希望按列排序,因此需要指定列

ORDER BY column1
如果列名为
column1
不能像这样使用PRIMARY,除非它是列名。在这种情况下,你会写

ORDER BY `PRIMARY`
as
PRIMARY
是一个mysql关键字(用于主键使用)

注意

`PRIMARY`
不同于

'PRIMARY'

这是一个常量值

Ahhh不确定是否使用了PRIMARY作为列名占位符。他有了这个值,查询工作正常。只是排序不起作用,因为有单引号。@StefanN-这就是为什么我问他是否通过php重复了它。我相信你已经意识到了,这往往是错误的。我打算给一个人一条鱼vs教一个人钓鱼:-)我明白,这更像是mysql的问题,而不是php的问题。他显然是在回应这个问题,因为他把它贴在了这里。谢谢,这个问题解决了。我忘了倒钩了,没问题。经验法则是在列名周围加上反勾(`),在字符串周围加上单引号(')。