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 返回布尔错误 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章