gpt4 book ai didi

php - Mysql 如果有问题

转载 作者:太空宇宙 更新时间:2023-11-03 10:25:32 24 4
gpt4 key购买 nike

我正在制作一个聊天框 IM。
我有一个表,如果用户关闭窗口,我想在其中更新,这意味着他已经查看了他的 friend 发送给他的消息。
发生这种情况时,每个对话都有一个唯一的 ID,因此我找到具有该 ID 的消息并将查看的列设置为用户名。

但是,如果其他用户也关闭了窗口,我想将所有消息的已查看列更改为“两者”,这样任何一个用户都不会弹出这些消息。 (默认情况下查看的列等于 0)
我想要的是一个查询,它只找到所有带有 convo_id 的消息,如果该消息已经被另一个用户查看意味着 viewed!=0 那么它被设置为否则它被设置为用户关闭框。

我有一个查询,但它不起作用,因为我没有完全理解正确的语法。

只是想知道是否有人可以纠正它或提出建议。

$sql = "UPDATE chatbox IF (viewed!=?) THEN
SET viewed=? WHERE convo_id=?
ELSE
SET viewed=? WHERE convo_id=?";
$stmt18 = $conn->prepare($sql);
$result = $stmt18->execute(array(0,$receiver,$convo_id,'both',$convo_id));

最佳答案

您需要使用 case 语句:

update catbox
set viewed = case when viewed = ? THEN ? else ? end
where convo_id = ?

关于php - Mysql 如果有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6144064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com