MySQL Query mit IF, ELSE ?

xrax

Erfahrenes Mitglied
Hallo zusammen,

ich möchte eine Query die entweder ein Result oder null zurückliefert.
In Java würde das ungefähr so aussehen.

Code:
ResultSet res = "SELECT * FROM tabelleXY WHERE Feld1='x' AND Feld2='1'";

if(res.next){
return null;
}else{
return res = "SELECT * FROM tabelleXY WHERE Feld2='0' LIMIT 1";
}

Ich möchte diese beiden Abfragen in eine Query packen.
So dass ich entweder eine NULL oder ein result zurück bekomme.
Wie mache ich das ?

Besten Dank
xrax
 
Eine Möglicheit

SQL:
SELECT
    t.*
FROM
    (
        SELECT *, 1 AS flag
        FROM tabelleXY
        WHERE Feld1='x' AND Feld2=1
        UNION SELECT *, 0 AS flag
        FROM tabelleXY
        WHERE Feld2=0
        LIMIT 1    
    ) AS t
WHERE
    (SELECT COUNT(*) FROM tabelleXY WHERE Feld1='x' AND Feld2='1') >= t.flag
 
SQL:
SELECT
    t.*
FROM
    (
        SELECT *, 0 AS sort
        FROM tabelleXY
        WHERE Feld1='x' AND Feld2=1
        UNION SELECT *, 1 AS sort
        FROM tabelleXY
        WHERE Feld2=0
        LIMIT 1    
    ) AS t
ORDER BY t.sort
LIMIT 1
 
Zurück