MySQL,根据选择条件插入

时间:2019-07-18 07:55:35

标签: mysql node.js

我需要根据行数和行值的选择比较来执行带有插入的复杂查询。 这是我想做的: -从“媒体”表中选择具有特定“ post_id”的所有媒体 -检查所有行是否都将“ media_status”设置为活动 -如果是,则将表“媒体”中的“ posts_status”的值更新为“活动”

是否可以在一个查询中完成?

async.waterfall([
        function download(next) {
            // pick media
            },
        function transform(response, next) {
            // transcode media
        },
        function upload(next) {
            // upload transcoded
            },            
        function clean(response, next) {
            // clean temp

            },
        function connectDb(next) {
            // connect to db
            },
        function saveDb(next) {
            // save single media
            },
        function conditionalNotification(next) {
            // HERE I NEED TO CHECK IF ALL MEDIA ARE TRANSCODED AND SET POST_STATUS ACTIVE 
            }             
            ...

1 个答案:

答案 0 :(得分:1)

您可以通过执行此单个查询来实现

update `media` set post_status='active' 
where 1=((select count(*) from `media` 
where post_id = <id value>)=
(select count(*) from `media` 
where post_id = <id value> and media_status='active'))