我需要根据行数和行值的选择比较来执行带有插入的复杂查询。 这是我想做的: -从“媒体”表中选择具有特定“ 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
}
...
答案 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'))