这对我来说是一件很难的事。我有一个保存用户通知的表。有一个“已查看”列,其中 0 表示尚未查看,1 表示已查看。
我想生成我的通知列表,SELECT * 是未查看的 (0),但是如果我没有未查看的通知,我不想只显示“无通知”,我想显示几个旧的。
我已经先展示了我最近未查看的内容。有没有一种方法可以显示所有未查看的内容,但只显示少数内容?像下面这样吗?
$QUERY= "SELECT * FROM point_member_notifications WHERE account_id='$accountid' ORDER BY viewed ASC, created_date DESC (LIMIT 10 WHERE VIEWED='1') "
最佳答案
也许您想要 UNION ALL
来限制“VIEWED”
旧的,只需将 limit
子句放在包含选择
(SELECT * FROM point_member_notifications WHERE account_id='$accountid' ORDER BY viewed ASC)
UNION ALL
(SELECT * FROM point_member_notifications WHERE account_id='$accountid' WHERE VIEWED='1' created_date DESC LIMIT 10);
关于MYSQL LIMIT 仅显示 "viewed"=1 的值,但不查看 ="0",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43881665/