SQL:ORDER BY、AND、WHERE 返回布尔错误 [关闭]

Posted

技术标签:

【中文标题】SQL:ORDER BY、AND、WHERE 返回布尔错误 [关闭]【英文标题】:SQL: ORDER BY, AND, WHERE returns boolean error [closed] 【发布时间】:2019-02-27 12:00:43 【问题描述】:

如果它们的状态不活跃 (aktiv = nei) 并且如果它们的创建时间少于 7 天,则尝试按日期订购一些 id,但我得到了“mysqli_fetch_assoc() 期望参数1 是 mysqli_result, boolean given” 错误,我似乎不知道为什么。

我遵循 caluses 的一般顺序(SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY)。如果我删除 ORDRE BY 或日期选择,它会起作用。

$aktivnei = 'SELECT * FROM `test3` WHERE aktiv LIKE "Nei" AND datex BETWEEN (CURRENT_DATE() - INTERVAL 7 DAY) AND CURRENT_DATE(); ORDER BY datex DESC';
$resultaktivnei = mysqli_query($conn,$aktivnei);

<?php
  while ($row = mysqli_fetch_assoc($resultaktivnei)) 
    echo '<li class="list-group-item">'.$row['id'].' / '.strftime('%H:%M, %e.%b',strtotime($row['datex'])).'</li>';
  ;
?>

我也试过这个,但得到完全相同的错误。我也尝试过移动caluses,但没有成功。

$aktivnei = 'SELECT * FROM `test3`';
$aktivnei .= ' WHERE aktiv LIKE "Nei" AND datex BETWEEN (CURRENT_DATE() - INTERVAL 7 DAY) AND CURRENT_DATE();';
$aktivnei .= ' ORDER BY datex DESC';

这可能很简单,但现在我在尝试了这么多不同的东西后只是摸不着头脑。

【问题讨论】:

ORDER BY 之前有一个分号。我认为这是一个错字并投票结束此类问题。 @GordonLinoff,是的。愚蠢的我看不到这么简单的东西。也投票关闭它,对不起。 【参考方案1】:

去掉order by之前的分号

'SELECT * FROM `test3` WHERE aktiv LIKE "Nei" AND datex BETWEEN (CURRENT_DATE() - INTERVAL 7 DAY) AND CURRENT_DATE() ORDER BY datex DESC'

【讨论】:

以上是关于SQL:ORDER BY、AND、WHERE 返回布尔错误 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

sql语句select group by order by where一般先后顺序

sql语句select group by order by where一般先后顺序

sql语句select group by order by where一般先后顺序

SQL语句 ORDER BY HAVING GROUP BY WHERE 等区别

SQL语句 ORDER BY HAVING GROUP BY WHERE 等区别

SQL语句中,如果有group by 和order by两个语句,是先分组还是先排序?