Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sélectionnez s'il existe sinon insérer ?

Votre énoncé est bien tel qu'il est. Le seul problème est que vous ne pouvez pas l'utiliser comme une requête normale. Structures de contrôle comme IF ou WHILE ne sont autorisés que dans les procédures ou fonctions stockées.

Créez simplement une procédure comme celle-ci :

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 $$

et appelez-le comme ceci :

call select_or_insert();

C'est tout.