社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

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

kirby hipona • 5 年前 • 1315 次点击  

请帮助我的查询我正在使用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
 
1315 次点击  
文章 [ 1 ]  |  最新文章 5 年前
forpas
Reply   •   1 楼
forpas    5 年前

我认为您需要一个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()))