MySQL初心者です。
よくあるプログラミング言語のように条件分岐させて、それぞれ自由な処理を行いたいと思っています。
例えば、条件が1の場合にはuserテーブルに'yamada'を追加しitemテーブルに'car'を追加し、ユーザIDを返す。
また、条件が0の場合には'hanako'のIDを返す。
というような複雑な条件を行うにはどうすれば良いのでしょうか?
sql
1CASE WHEN 1 -- 条件分岐 2THEN 3 SET @id=(SELECT MAX(id) FROM user) + 1; 4 INSERT INTO user (id, name, age) values (@id, 'yamada', 45); 5 INSERT INTO item (item) values ('car'); 6 SELECT @id id; 7ELSE 8 SELECT * FROM user WHERE name = 'hanako'; 9END
最終的に得たい結果は以下です。
id |
---|
432 |
※ 432はyamadaかhanakoのID
よろしくお願いいたしますm(_ _)m
追記ですが、iwamoto_takaakiさんのおかげで設計方針として条件分岐をデータベースにやらせるのは良くないということを教えていただきました。
ありがとうございます。
そこで、質問を若干修正させて頂きたいのですが、そのような設計がよくないとした上で、ストアドプロシージャを利用しなかった場合に条件分岐させて複数のステートメントを処理させるクエリを発行することはできるのでしょうか?
なぜ設計がよくないのに知りたいのかと言いますと「使わないから知らない」よりも「知った上で使わない」ことの方が良かったと思ったからです。
この質問に回答できる方がいらっしゃいましたら是非教えていただけるとありがたいです。
回答2件
あなたの回答
tips
プレビュー