MYSQL,WHERE / LIMIT / ORDERBY的组合

Ili*_*ias 5 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();
Run Code Online (Sandbox Code Playgroud)

运行正常但是当我将其更改为此

$sql = 'SELECT * FROM tb_event WHERE DATE(edate) >= DATE(NOW() LIMIT 2)';
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息

Warning: mysqli_error() expects exactly 1 parameter, 0 given in /var/www/.../...php
Run Code Online (Sandbox Code Playgroud)

最后,我想将其与订单结合起来,就像这样

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

我究竟做错了什么?

jos*_*row 5

您需要从 DATE() 宏中取出 limit 子句。

SELECT * FROM tb_event WHERE DATE(edate) >= DATE(NOW()) LIMIT 2
Run Code Online (Sandbox Code Playgroud)

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

SELECT * FROM tb_event WHERE DATE(edate) >= DATE(NOW()) LIMIT 2 ORDER BY myField DESC
Run Code Online (Sandbox Code Playgroud)