の行を削除存在している場合、私はこのようなクエリがあります。行がTHEN mysqlの
IF EXISTS(SELECT 1 FROM table1 WHERE col1 = ? LIMIT 1) THEN
DELETE FROM table2 WHERE col2 = ?
END IF
をしかし、上記のクエリが動作しない理由を私は知りません。また、これはうまくいきません:
IF EXISTS(SELECT 1 FROM table1 WHERE col1 = ? LIMIT 1) BEGIN
DELETE FROM table2 WHERE col2 = ?
END
私はそこに構文エラーがあります、私はそれを修正することができますか?
MySQLは(一般的に)手続き型プログラミング言語ではありません。プロシージャの外部でIF文を使用することはできません。ドキュメンテーションはこれを述べています。あなたが実際にそれを_read_していたなら、あなたはあなたの質問に対する答えを見つけるかもしれません。あなたが文書を読むことができなかった何らかの理由がありますか? –
うん。したがって、アプリケーションロジックで 'IF'を実行することにかなり悩まされています。 –
@ LightnessRacesinOrbit実際に私は[この回答](http://stackoverflow.com/questions/639854/check-if-a-row-exists-otherwise-insert#639874)を見て、IFを使用することが可能かもしれないと考えましたmysqlで!とにかく大丈夫です。 – Shafizadeh