2016-11-11 7 views
0

Ich kann nicht scheinen, eine richtige Lösung dafür zu finden. Hier ist das Szenario, das ich zu will eine Bedingung hinzuzufügen, wenn der Parameter ist 0. Sieht so etwas wieHinzufügen Bedingung in, wo bedingt

SELECT * FROM TABLE WHERE name = @name AND 
//this is the part I dont know but I want something like 
IF(@id = 0) 
{ 
//do nothing 
}else{ 
id = @id 
} 
+1

Sie probaby eine 'CASE' wollen, aber ist schwer, mit so wenig Informationen zu erraten Bitte lesen Sie [** How-to-Frage ** ] (http://stackoverflow.com/help/how-to-ask) \t \t Und hier ist ein großartiger Ort, um [** START **] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-Frage-auf-einem-öffentlichen-Forum /) zu lernen, wie Sie Ihre Fragequalität verbessern und bessere Antworten erhalten. –

Antwort

3

In MySQL IF eine Funktion ist (es ist wie der ternäre Operator in C und PHP). Sie können TRUE davon zurückgeben, wenn Sie nichts tun müssen.

SELECT * 
FROM Table 
WHERE name = @name 
AND IF(@id = 0, TRUE, id = @id) 

Ein anderer Weg, es zu tun ist, mit OR:

WHERE name = @name AND (@id = 0 OR id = @id)