gpt4 book ai didi

mysql - Case WHEN 错误

转载 作者:搜寻专家 更新时间:2023-10-30 22:30:50 25 4
gpt4 key购买 nike

这是我的问题

CASE
WHEN (SELECT COUNT(*) FROM `table` WHERE `ip`= 'myip' )=1
THEN UPDATE `table`
SET `last_active`=".date("Ymd").",`last_time`=".date("His")."
WHERE `ip`= 'myip';

ELSE (INSERT INTO `table`(ip)
VALUES("myip"));

END

但它不醒。问题应该出在这里

 (SELECT COUNT(*) FROM `table` WHERE `ip`= 'myip' )=1 

我该如何解决这个问题?或者如何以其他方式做到这一点?

date("Ymd") 函数只是 php 函数,用于返回问题不在于此的日期

谢谢

最佳答案

我认为你正在尝试这样做:

create unique index unq_table_ip on table(ip);

insert into table (ip)
values ('myip')
on duplicate key update last_active = curdate(),
last_time = curtime();

唯一索引(或等效的唯一约束)保证给定的 ip 在表中只出现一次。让数据库为您完成这项工作——这称为维护关系完整性。

注意事项:

  • 假设 last_activelast_time 在表中具有默认值。
  • 为此,您应该使用数据库时间,而不是应用程序时间(毕竟,不同的客户端可能有不同的时间值)。
  • 您应该将日期/时间值放入单个 datetime 列中,比如 last_active_datetime

关于mysql - Case WHEN 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43832374/

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