发布网友
共2个回答
热心网友
直接加在语句最后就行了。
UPDATE `member` SET score = (CASE WHEN score IS NOT NULL THEN score = 0 ELSE score = 1 END) where id =1;
mysql数据库中CASE WHEN语句。
case when语句,用于计算条件列表并返回多个可能结果表达式之一。
CASE 具有两种格式:
简单 CASE 函数将某个表达式与一组简单表达式进行比较以确定结果。
CASE 搜索函数计算一组布尔表达式以确定结果。
两种格式都支持可选的 ELSE 参数。
热心网友
UPDATE `member` SET score = (CASE WHEN score IS NOT NULL THEN score = 0 ELSE score = 1 END) where id =1;
直接加在语句最后就行了追问我试过,结果就很长时间的运转 没有结果,爆出错误代码 1205
追答语句就是这么写的,至于长时间运行后报1205错,是因为执行时间超时导致中断。
1、查看表member的数据量
2、看看id字段有没有加索引
3、执行该语句的时候有没有被其他语句锁表
如果表数据量过大,而且id没有索引,这时执行语句的时间会很长,而且做update操作时会锁表,所以接合这几点你在分析一下,看问题出在哪里。