Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Auswählen, falls vorhanden sonst einfügen?

Deine Aussage ist so in Ordnung. Das einzige Problem ist, dass Sie es nicht wie eine normale Abfrage verwenden können. Kontrollstrukturen wie IF oder WHILE sind nur in gespeicherten Prozeduren oder Funktionen erlaubt.

Erstellen Sie einfach eine Prozedur wie diese:

delimiter $$

create procedure select_or_insert()
begin

IF EXISTS (select * from users where username = 'something') THEN
    select id from users where username = 'something';
ELSE 
    insert into users (username) values ('something');
END IF;

end $$

und nennen Sie es so:

call select_or_insert();

Das ist es.