#MySQL 想要查询并修改同一张表的一个属性
#首先想的就是这样写
复制收展SQLUPDATE lx_article
SET article_comment_count = (
SELECT
article_comment_count
FROM
lx_article
WHERE
article_id= 'DuDedZzZ'
)+1
WHERE
article_id= 'DuDedZzZ';
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
#Mysql不能同时读写,因为Mysql有读写锁锁定的问题 ,读删也是一样的
#[Err] 1093 - You can't specify target table 'lx_article' for update in FROM clause
#解决
#我们可以创建一张临时表临时表,然后载修改UPDATE,也就是操作lx_article和tmp两张表
#时间: 0.035s
复制收展SQLUPDATE lx_article
SET article_comment_count = (
SELECT article_comment_count
FROM
(SELECT
article_comment_count
FROM
lx_article
WHERE
article_id= 'DuDedZzZ')
AS tmp
)+1
WHERE
article_id= 'DuDedZzZ';
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14