gpt4 book ai didi

mysql - 使用 UPDATE 将行标记为 'used'

转载 作者:行者123 更新时间:2023-11-30 21:38:11 25 4
gpt4 key购买 nike

我想通过 SQL UPDATE 查询查看某个 id 是否已被使用。响应还应区分无效 ID 和已使用的 ID。

我的例子:
将选民存储在 SQL 数据库中。使用列 vote_id(唯一)、voted(0 或 1)和 already_voted(0 或1):

  • 选民 x 第一次投票并且有有效的 vote_id:检查 voted
  • x 第二次出现:通过检查 already_voted 拒绝。
  • x 第三次出现:votedalready_voted 都被选中。没有更新。但是当 vote_id 无效时,我想要“不更新”。
  • y 没有有效的 vote_id:没有更新。

我不明白为什么当already_voted从0变为1时voted跳回0:

UPDATE Voters        
SET already_voted = CASE WHEN voted = 1 THEN 1 END,
voted = CASE WHEN voted = 0 THEN 1 END
WHERE vote_id='12345'

我也愿意接受一种完全不同的方法。感谢您的宝贵时间。

最佳答案

试试这个:

UPDATE Voters        
SET already_voted = CASE WHEN voted = 1 THEN 1 ELSE already_voted END,
voted = CASE WHEN voted = 0 THEN 1 ELSE voted END
WHERE vote_id='12345

当 voted 已经是 1 并且您使用查询时,将使用 case 表达式的默认值(对于 voted 列),如果没有另外指定则为 NULL。

关于mysql - 使用 UPDATE 将行标记为 'used',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52956021/

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