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时,它会删除换行符,如果在行尾没有空格-您的行会连接,在更好的情况下会导致错误,在最坏的情况下会导致不必要的行为。。。