表1,goods表(goods_id:商品编号,comment_num:评论数目):
goods_id comment_num
1 3
2 2
表2,comment表(comment_id:评论编号, goods_id:商品编号):
comment_id goods_id
1 1
2 1
3 1
4 2
5 2
问题:
现在我要删除评论编号为3,4,5的评论,
如何在一条语句里实现以下功能:
更新第3,4, 5条评论所对应商品的评论数目。
你可以直接将俩表连接起来进行操作。
删除评论编号为3,4,5的评论:使编号为3,4,5的评论=null。
更新第3,4, 5条评论所对应商品的评论数目:update3,4, 5条评论所对应商品的评论数目。
这种情况最好写个触发器,触发器专门干这事的,实现起来一条不大好实现,只要功能出来了就行,也不一定非得要一条。或者存储过程也行,在上面delete成功后就紧接着执行update到goods
叫我说你这表设计的就不对,为什么在goods表里加个comment数量的字段?需要comment数量的时候从comment表里计算count()不就行了
update goods g set g.comment_num = (select count(1) from comment c where g.goods_id = c.goods_id)
最好就是使用存储过程来实现
看我博客http://blog.csdn.net/fu415037685/article/details/52032625