最近用MYSQL来开发一个小项目,需要到这样的一个功能:
其中常见问题ID可以重复,代表不同版本的同一个常见问题。
要更新常见问题表中,版本号最大的,而且常见问题问题ID,为某个ID的记录的审核状态为通过。
一开始的想的SQL语句为:
update faq set faq.checkStatus='pass' from faq where version = (select Max(version) from faq where faqId='xxx') and faqId='xxx'
执行后,报错,上网去查才发现,原来MYSQL,不支持像这种形式的嵌套更新,改成这样
update faq set faq.checkStatus='pass' from faq, (select Max(version) as M from faq where faqId='xxx') as F where version = F.M and faqId='xxx'.
这样才避免的嵌套的更新。