Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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
Php 通过中断mysql查询进行排序_Php_Mysql_Join_Sql Order By_Inner Join - Fatal编程技术网

Php 通过中断mysql查询进行排序

Php 通过中断mysql查询进行排序,php,mysql,join,sql-order-by,inner-join,Php,Mysql,Join,Sql Order By,Inner Join,这里有人帮我整理了这个非常有用的查询 SELECT * FROM results r INNER JOIN categories c on r.id = c.result_id WHERE c.name in ('$purpose', '$prop_type', '$loan_type') GROUP BY r.id HAVING COUNT(c.c_id) = 3 LIMIT 50 OFFSET 0 这是伟大的工作!但是,当我尝试使用 SELECT * FROM results r I

这里有人帮我整理了这个非常有用的查询

SELECT * FROM results r 
INNER JOIN categories c on r.id = c.result_id 
WHERE c.name in ('$purpose', '$prop_type', '$loan_type')
GROUP BY r.id
HAVING COUNT(c.c_id) = 3
LIMIT 50 OFFSET 0
这是伟大的工作!但是,当我尝试使用

SELECT * FROM results r 
INNER JOIN categories c on r.id = c.result_id 
WHERE c.name in ('$purpose', '$prop_type', '$loan_type')
ORDER BY r.usefulness DESC
GROUP BY r.id
HAVING COUNT(c.c_id) = 3
LIMIT 50 OFFSET 0
我得到一个语法错误。我是不是漏掉了什么明显的东西


非常感谢

ORDER BY
必须在
have
之后
ORDER BY
必须在
have
之后查询部分有一个顺序,
ORDER BY
应该在最后(在
限制和
偏移之前)
尝试以下操作:

SELECT * FROM results r 
INNER JOIN categories c on r.id = c.result_id 
WHERE c.name in ('$purpose', '$prop_type', '$loan_type')
GROUP BY r.id
HAVING COUNT(c.c_id) = 3
ORDER BY usefulness DESC
LIMIT 50 OFFSET 0
还要确保在任何一行的末尾都有空格


请注意,在mysql中,它是
LIMIT x OFFSET y
的缩写版本-您只需编写
LIMIT y,x
查询部分有一个顺序,并且
order BY
应该在末尾(在
LIMIT
OFFSET
之前)。尝试以下操作:

SELECT * FROM results r 
INNER JOIN categories c on r.id = c.result_id 
WHERE c.name in ('$purpose', '$prop_type', '$loan_type')
GROUP BY r.id
HAVING COUNT(c.c_id) = 3
ORDER BY usefulness DESC
LIMIT 50 OFFSET 0
还要确保在任何一行的末尾都有空格


请注意,在mysql中,这是
限制x偏移量y
的缩写版本-您可以只写
限制y,x

订单依据应该是您的最后标准。谢谢大家。我知道这很简单!(与问题无关):您可能只需要
SELECT r.*
。而不是
SELECT*
订购人应该是您的最后标准。谢谢大家。我知道这很简单!(与问题无关):您可能只需要
SELECT r.*
。而不是
SELECT*
为什么在行尾有空格?这是有道理的,但行尾的空格有点奇怪。这取决于您如何运行查询,如果(例如)查询是在多行字符串中(在PHP中-再次举例)当你调用sql server时,它会删除换行符,如果你的行尾没有空格,那么你的行会连接起来,在更好的情况下会导致错误,在最坏的情况下会导致不必要的行为…为什么在行尾有空格?这是有道理的,但是行尾的空格有点奇怪。这取决于u运行查询,如果(例如)查询是多行字符串(在PHP中-再次举例)而不是在调用sql server时,它会删除换行符,如果在行尾没有空格-您的行会连接,在更好的情况下会导致错误,在最坏的情况下会导致不必要的行为。。。