为什么WHERE和ORDER BY不兼容?

时间:2011-08-02 18:21:25

标签: mysql sql-order-by where

每当我尝试在同一个MySQL查询中使用WHEREORDER BY时(在php或c#中),它都不起作用。我总是设法找到另一种方法来做到这一点,但我想知道为什么我们不能同时使用它们。谢谢。

编辑:现在似乎工作,但我向上帝发誓以前从来没有为我工作,永远!无论他们的订单是什么......:s无论如何,谢谢你们! :)

6 个答案:

答案 0 :(得分:7)

您可以同时使用它们,您必须按正确的顺序放置它们。

SELECT *
FROM table t
WHERE t.field
ORDER BY t.field1

我建议你阅读。

WHERE

ORDER BY

答案 1 :(得分:2)

你绝对可以同时使用它们。

答案 2 :(得分:2)

您可以在同一语句中使用它们。您需要确保它们的顺序正确:

SELECT *
  FROM Table
 WHERE Column = Something
 ORDER
    BY ColumnId

答案 3 :(得分:2)

它们非常兼容。我怀疑使用的语法是错误的。要获得有关如何正确编写它的建议,请在帖子中包含“错误”语法。

这是有效的SQL(假设存在这样的模式):

SELECT age
FROM users
WHERE age > 42
ORDER BY age ASC

请注意,ORDER BY必须在最后。

请参阅SELECT syntax了解特定数据库(供应商和版本之间存在偏差)。请注意,C#LINQ“类似于”SQL,但不是 SQL。

快乐的编码。

答案 4 :(得分:0)

PEBKAC:这不是MySQL的问题。

答案 5 :(得分:0)

它们应该是兼容的......

我唯一能想到的就是:你在WHERE之前使用ORDER BY吗?在一些RDBMS实现中,查询部分的顺序非常重要。