【发布时间】:2013-05-08 20:07:13
【问题描述】:
如何在单个 MySQL 查询中执行此操作:
if (select count(*)..)=10
select a record from the same table
else
insert a record into the same table
【问题讨论】:
-
我看不出您在单个查询中如何读取或写入,我的意思是客户端应该如何读取/写入数据?您可以为它编写一个过程或函数,它接受潜在插入的所有参数并可能返回读取的数据。
-
我会在PHP中获取结果,然后根据返回的数据进行操作。我正在记录 IP 地址以防止暴力攻击; 10号实际上更少。选择是客户端应该等待多少分钟。 Insertion 正在记录他的 IP 时间。
-
你想要的是一个存储过程。看看这个问题:stackoverflow.com/questions/6751881/… 然后阅读 MySQL 存储过程。 dev.mysql.com/doc/refman/5.5/en/stored-programs-defining.html
-
然后在 PHP 中做出决定,我建议。计数值,如果超过 9,则拒绝,否则插入。如果网站使用 redis 或 memcache 访问量很大,你甚至可以避免使用 mysql。
-
@EdManet 我不知道什么是 MySQL 过程或存储过程,我试图从链接中了解。我可以通过 PHP 使用它们吗?请通过答案提供更多指导。
标签: mysql