MYSQL,WHERE / LIMIT / ORDERBY的组合

时间:2011-01-20 13:31:39

标签: mysql limit where

我有这个

$sql = 'SELECT * FROM tb_event WHERE DATE(edate) >= DATE(NOW())';
   $result = $conn->query($sql) or die(mysqli_error());
   $news = $result->fetch_assoc();

运行正常 但是当我把它改成这个

$sql = 'SELECT * FROM tb_event WHERE DATE(edate) >= DATE(NOW() LIMIT 2)';

我收到此错误消息

Warning: mysqli_error() expects exactly 1 parameter, 0 given in /var/www/.../...php

最后我想将它与order by结合起来 就像这样

$sql = 'SELECT * FROM tb_event WHERE DATE(edate) >= DATE(NOW() LIMIT 2 ORDER BY DESC)';

我做错了什么?

2 个答案:

答案 0 :(得分:4)

您需要将限制子句拉出DATE()宏。

SELECT * FROM tb_event WHERE DATE(edate) >= DATE(NOW()) LIMIT 2

此外,如果您想订购,您必须设置一个字段,例如

SELECT * FROM tb_event WHERE DATE(edate) >= DATE(NOW()) LIMIT 2 ORDER BY myField DESC

答案 1 :(得分:2)

$sql = 'SELECT * FROM tb_event WHERE DATE(edate) >= DATE(NOW()) ORDER BY edate DESC LIMIT 2';

请注意,您获得的实际错误在于您在错误处理代码中调用mysqli_error的方式。解决这个问题。