第一次在PDO中使用CASE(mySQL数据库)
我正在尝试按日期排序,但前提是该日期未注册(可以)
但这似乎完全忽略了此案。我在做什么错?
$sql = 'SELECT * FROM mytable WHERE groupid = '.$groupid.' ORDER BY CASE WHEN groupdate != "0000-00-00" THEN groupdate END ASC';
$STH = $conn->query($sql);
if ($STH->rowCount() > 0) {
while ($row = $STH->fetch()) {
// output the rows
}
} else {
echo '<p>No dates found!</p>';
}
最佳答案
您想对零日期行做什么?
在其他行之后还给他们吗?
然后使用此查询
SELECT *
FROM mytable
WHERE groupid = $groupid
ORDER BY groupdate = '0000-00-00', groupdate
groupdate ='0000-00-00'是布尔表达式,对于匹配的行返回1,对于不匹配的行返回0。 0按升序排在1之前。
非零行按groupdate排序。