我只想在 car_log 中有没有状态“测试”的条目时更新 last_test_date,我真的认为这段代码很糟糕,有什么办法可以更好地编写它吗?
UPDATE car SET last_test_date =
(SELECT date FROM car_log WHERE car_log.car_id = car.id AND
car_log.status != 'test' ORDER BY date DESC LIMIT 0,1)
WHERE (SELECT COUNT(*) FROM car_log WHERE car_log_id = client.id AND
car_log.status != 'test') > 0;
最佳答案
使用@@ROWCOUNT获取最后查询的行数,这样就不会重复select了
...
WHERE @@ROWCOUNT > 0;
关于mysql - SQL - 仅当子查询不为空时更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30357325/