sql >> Databasteknik >  >> RDS >> Mysql

Välj om det finns annat infoga?

Ditt uttalande är bra som det är. Det enda problemet är att du inte kan använda det som en vanlig fråga. Kontrollstrukturer som IF eller WHILE är endast tillåtna i lagrade procedurer eller funktioner.

Skapa bara en procedur så här:

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

och kalla det så här:

call select_or_insert();

Det var allt.



  1. Filtrera DataGrid för namn med TextBox dynamiskt

  2. Varför kan inte indexerade vyer ha ett MAX()-aggregat?

  3. När måste vi använda NVARCHAR/NCHAR istället för VARCHAR/CHAR i SQL Server?

  4. Skapa ett relaterat eller liknande inlägg med PHP &MySQL