Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL是否支持语法更新集?_Mysql_Sql Update - Fatal编程技术网

MySQL是否支持语法更新集?

MySQL是否支持语法更新集?,mysql,sql-update,Mysql,Sql Update,我们有桌上邮政和桌上邮政 t_post有一个名为like_count的列,它存储了它得到的喜欢的数量 每次用户喜欢该帖子时,都会在t_post_like中创建一个新行,每行都包含post_id列中的帖子id。t_post中的like_count字段也会增加1 现在,我们希望使用我在以下内容中找到的SQL来更正t_post中的like_计数: 但是我们得到了正确的语法来使用near'from t_post c internal join…,MySQL不支持语法中的更新集吗?MySQL确实支持更新连

我们有桌上邮政和桌上邮政

t_post有一个名为like_count的列,它存储了它得到的喜欢的数量

每次用户喜欢该帖子时,都会在t_post_like中创建一个新行,每行都包含post_id列中的帖子id。t_post中的like_count字段也会增加1

现在,我们希望使用我在以下内容中找到的SQL来更正t_post中的like_计数:


但是我们得到了正确的语法来使用near'from t_post c internal join…,MySQL不支持语法中的更新集吗?

MySQL确实支持更新连接语法,但它看起来更像这样:

更新t_post p 内连接 选择post\u id,COUNT*如按post计数 从t_post_like 按邮政编码分组 L 在l.post_id=p.id上 设置 like_count=l.like_count_按邮政方式;
所以我猜我使用的语法被MySQL认为是不可识别的,显然,我不知道这是SQL server语法。我真的希望我们可以一次性学习语法并应用于所有SQL数据库。不是学习每个数据库的语法。@fall是的,这是大多数sql开发人员长期以来的梦想……查询中没有t_circle表!这是个错误,我已经改正了!
update p
set p.like_count = l.like_count_by_post 
 from t_post p inner join 
(
    select post_id, count(1) like_count_by_post
    from t_post_like
    group by post_id
) l
on p.id = l.post_id;