2011-08-02 4 views
1

Je voudrais insérer une ligne dans une table si une variable a une certaine valeur. J'ai essayé ce qui suit:Instruction IF dans MySQL

select foo from bar into @tempvar; 

if @tempvar = '1' 
begin 
    insert into t1 (f1, f2) values (v1,v2); 
end 
end if; 

Hélas, cela ne fonctionne pas. Une idée de comment faire cela?

+1

Si 'foo' est un nombre, ne le comparez pas à une chaîne (' = 1' pas '= '1''). –

Répondre

1
INSERT INTO t1 
    (f1, f2) 
SELECT 
    v1, 
    v2 
FROM 
    bar 
WHERE 
    foo = 1 

v1 et v2 peuvent être des valeurs littérales (nombres, chaînes, etc.), ils ne doivent pas être colonnes de bar. Vous obtiendrez autant de INSERT s que la partie SELECT retourne.

+0

Merci! ça a marché! – Pepper