sql >> Database >  >> RDS >> Mysql

Selecteer indien aanwezig anders invoegen?

Je statement is goed zoals het is. Het enige probleem is dat je het niet als een normale zoekopdracht kunt gebruiken. Besturingsstructuren zoals IF of WHILE zijn alleen toegestaan ​​in opgeslagen procedures of functies.

Maak gewoon een procedure zoals deze:

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

en noem het zo:

call select_or_insert();

Dat is het.



  1. MySQL:ALTER NEGEER TABEL UNIEK TOEVOEGEN, wat wordt afgekapt?

  2. Hoeveel UTF-8-tekst past in een MySQL-tekstveld?

  3. SQL 1064 Syntaxisfout bij gebruik van een door JDBC voorbereide instructie

  4. Hoe voorkom ik dat een MySQL-decimaalveld wordt afgerond?