php - 如何解决下面的查询以及使用 IN 运算符的目的是什么

标签 php mysql subquery

update radcheck SET radcheck.attribute = 'rejected' where radcheck.username IN (select username from radpostauth where radpostauth.username = $mobile AND radpostauth.authdate < now() - 120)");

当 radpostauth 表中的相同用户名在他的回复列中具有值“拒绝”时,我希望我的查询更新 radcheck 表中用户名的列“属性” 我需要先在 radpostauth.authdate 的基础上更新 radpostauth.reply = 'reject'

最佳答案

请在 mysql 查询中使用连接,因为使用连接而不是内部查询性能更好

update radcheck as rc
JOIN radpostauth asrpa ON (rpa.username = rc.username)  AND (rpa.authdate < now() - 120)
SET rc.attribute = 'rejected' 
where rpa.reply = 'reject';

关于php - 如何解决下面的查询以及使用 IN 运算符的目的是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37984782/

相关文章:

php - 尽管正确构建了查询,但 mysqli_query 无法在 php 中工作

php - 如何使用 Yii 使用多个配置文件

Javascript DES加密/PHP解密

php - 从输入字段插入 wp DB

php - 为什么 PHP 中的查询内部查询比 2 个查询慢?

php - 使用 PHP 访问对象变量

MySQL从子查询返回数组,以及NULL

php - 根据选择字段中的值自动填充表单字段

sql - 为每个用户选择最大记录

MySQL 问题 - 查找某人评分为 5 星而其他人评分少于 3 星的每部电影的标题和年份