Py学习  »  DATABASE

MySQL查询中select语句的案例检查到期

kirby hipona • 4 年前 • 1097 次点击  

请帮助我的查询我正在使用MySql Case,我不知道我的查询有什么问题。错误来自update语句。我不知道我的想法是否有效。提前谢谢。

这是我的问题

 SELECT CASE WHEN (date(au.expiration) < date(now()))
 THEN (UPDATE controller SET access = '0' WHERE idno = au.assignedidno)
 ELSE (UPDATE controller SET access = '1'  WHERE idno = au.assignedidno)
 END FROM assignuser au 

请帮忙。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/49801
 
1097 次点击  
文章 [ 1 ]  |  最新文章 4 年前
forpas
Reply   •   1 楼
forpas    4 年前

我认为您需要一个UPDATE语句,其中包含两个表的连接,并使用CASE表达式将值设置为列:

UPDATE controller c 
INNER JOIN assignuser au
ON c.idno = au.assignedidno
SET c.access = CASE 
  WHEN (date(au.expiration) < date(now())) THEN '0'
  ELSE '1'
END

可以这样简化:

UPDATE controller c 
INNER JOIN assignuser au
ON c.idno = au.assignedidno
SET c.access = (date(au.expiration) >= date(now()))