sql >> Base de Datos >  >> RDS >> Mysql

Seleccionar si existe otra cosa ¿insertar?

Su declaración está bien como está. El único problema es que no puede usarlo como una consulta normal. Estructuras de control como IF o WHILE solo se permiten en funciones o procedimientos almacenados.

Simplemente cree un procedimiento como este:

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

y llámalo así:

call select_or_insert();

Eso es todo.