1

これらの2つのクエリを1つに変更することは可能ですか?

クエリ#1:

UPDATE  `pvdownloader`.`posts`
SET  `exists` =  'y'
WHERE source = ANY (SELECT source FROM dbdownloader.posts)
  AND `mangacount` = 0
  AND NOT `exists` = 'm'

クエリ#2:

UPDATE `pvdownloader`.`posts`
SET  `exists` =  'n'
WHERE `exists` = 'u'
  AND `mangacount` = 0

IF / ELSEでこのようなものを作ることは可能だと思いますが、使い方がまったくわかりません:<

4

1 に答える 1

5

多分このようなものがうまくいくでしょう:

update
  pvdownloader.posts
set
  exists =
    case
      when source = any(select source from dbdownloader.posts) and mangacount = 0 and exists != 'm' then 'y'
      when exists = 'u' and mangacount = 0 then 'n'
    end
where 
  (source = any(select source from dbdownloader.posts) and mangacount = 0 and exists != 'm')
  or
  (exists = 'u' and mangacount = 0)
;

@MostyMostachoが示唆したように、私はあなたの論理を二重否定を持たないように自由に変更しました。

于 2012-04-15T00:28:36.880 に答える