MySQL查询中select语句中的大小写检查过期

MySQL查询中select语句中的大小写检查过期,mysql,Mysql,我正在使用MySQLcase,我不知道我的查询有什么问题。错误来自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

我正在使用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 
选择案例时间(日期(au.expiration)

请提供帮助。

我认为您需要一个包含两个表的联接的UPDATE语句,并使用大小写表达式将值设置为列:

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()))