2017-07-20 1 views
0

Ich habe die folgende Tabelle mit dem Namen tbl_pet_types Rückkehr:„NOT FOUND“ string statt leerer Menge von MySQL-Abfrage

+----------+-------------+ 
| pet  | type  | 
+----------+-------------+ 
| cat  | mammal  | 
| dog  | mammal  | 
| goldfish | fish  | 
| goldfish | seacreature | 
| snake | reptile  | 
+----------+-------------+ 

Ich mag eine Abfrage erstellen, die für type = ‚Amphibie‘ in der Tabelle sieht, und kehrt

type  pet 
amphibian NOT FOUND 

seit amphibie in tbl_pet_types nicht

ich versuche zu finden ist zu verwenden, wenn() dies zu tun:

SELECT IF(type=NULL, type, type), IF(pet=NULL, 'NOT FOUND', pet) 
FROM tbl_pet_types 
WHERE type='amphibian'; 

Aber die Abfrage gibt immer noch eine leere Menge zurück. Wie kann ich meine Abfrage ändern, um die gewünschten Ergebnisse zu erhalten?

+0

Uh ... Sie es fragen FOUND'' zurückzukehren ' 'NICHT. ': /' –

Antwort

0

Man könnte dies einen Versuch geben, aber wenn Sie für mehrere Arten suchen müssen, könnte es umständlich erhalten:

SELECT 
    a.`type`, 
    IF(b.`type` IS NULL, 'NOT FOUND', b.pet) as `pet` 
FROM (SELECT 'amphibian' as `type`) a 
LEFT JOIN tbl_pet_types b 
    ON a.`type` = b.`type` 
WHERE type='amphibian';