Mysql Sorgu İçerisinde If, Else Kullanımı?
-
Mysql'e if ve else içeren sorgu göndermem gerekiyor. Daha önce mssql e oracle de gönderdim. Bu destek mysql'dede varmış araştırdım ancak örneklerdeki sorgular dahi bir türlü çalışmadı sürekli aşağıdaki hayatı aldım. Sorgu: SELECT * FROM application a IF(a.ApplicationTypeRef = 1) THEN select * from workshop; ELSE IF(a.ApplicationTypeRef = 1) THEN select * from expertise; ELSE IF(a.ApplicationTypeRef = 1) THEN select * from expertise; END IF; Hata: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF(a.ApplicationTypeRef = 1) THEN select * from workshop' at line 2
-
procedure yazıp selectle çektiğin değeri procedure'e göndertip orada ifleyebilirsin
örnek :
DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`deneme` $$
CREATE DEFINER = `root`@`localhost` PROCEDURE `test`.`deneme` (in a int,in b int)
BEGIN
case a
when 1 then INSERT INTO test.aaa VALUES ('NULL','gaagagag');
when 2 then delete from test.bbb where id >0 ;
else select 'hata islem turu belirtmediniz';
end case;
END $$
DELIMITER ;
call deneme(1,1)
daha kısa yollarıda olabilir tabi ama ben böyle çözmüştüm lazım olduğunda :)
-
sokoban bunu yazdı:
-----------------------------procedure yazıp selectle çektiğin değeri procedure'e göndertip orada ifleyebilirsin
örnek :
DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`deneme` $$
CREATE DEFINER = `root`@`localhost` PROCEDURE `test`.`deneme` (in a int,in b int)
BEGIN
case a
when 1 then INSERT INTO test.aaa VALUES ('NULL','gaagagag');
when 2 then delete from test.bbb where id >0 ;
else select 'hata islem turu belirtmediniz';
end case;
END $$
DELIMITER ;
call deneme(1,1)
daha kısa yollarıda olabilir tabi ama ben böyle çözmüştüm lazım olduğunda :)
-----------------------------
eyvallah ama store procedure işine girmek istemiyorum, çünkü zaten sıkıntılı bir proje sürekli müdehale gerekiyor ve ne varsa kodda olsun diye düşünüyorum. -
TeRRoR bunu yazdı:
-----------------------------
sokoban bunu yazdı:
-----------------------------
procedure yazıp selectle çektiğin değeri procedure'e göndertip orada ifleyebilirsin
örnek :
DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`deneme` $$
CREATE DEFINER = `root`@`localhost` PROCEDURE `test`.`deneme` (in a int,in b int)
BEGIN
case a
when 1 then INSERT INTO test.aaa VALUES ('NULL','gaagagag');
when 2 then delete from test.bbb where id >0 ;
else select 'hata islem turu belirtmediniz';
end case;
END $$
DELIMITER ;
call deneme(1,1)
daha kısa yollarıda olabilir tabi ama ben böyle çözmüştüm lazım olduğunda :)
-----------------------------
eyvallah ama store procedure işine girmek istemiyorum, çünkü zaten sıkıntılı bir proje sürekli müdehale gerekiyor ve ne varsa kodda olsun diye düşünüyorum.
-----------------------------sen yazınca benimde kafamı kurcaladı hacı eğer daha kısa bi yolunu bulursam yazıcam :D araştırmalarım sürüyor.
