Rolf B: Select Ausgabe von zwei Textfeldern, aber jeweils nur eines ausgeben

Beitrag lesen

Hallo dedlfix,

ich finde UNION besser als IF. Das ist klarer und voll allem indexierbar. Ein OR im WHERE führt oft dazu, dass ein Index nicht benutzt wird (zumindest habe ich das vor vielen Jahren mal so gelernt).

  SELECT id,namen1 as namen
  FROM adress 
  WHERE namen2 = 10
UNION 
  SELECT id,namen2 as namen
  FROM adress 
  WHERE namen1 = 10 
ORDER BY id, namen

Edit: Korrigiert nach Hinweis von Tom

Der ORDER BY am Ende sorgt dafür, dass das Ergebnis nach ID sortiert ist. Ansonsten hättest Du zuerst alle Sätze mit namen1=10 und danach alle Sätze mit namen2=10.

Rolf

--
sumpsi - posui - clusi