Vinnaren i pepparkakshustävlingen!
2013-01-22, 11:53
  #1
Medlem
SuperChihuahuas avatar
SQL-kod i MySQL:
Kod:
SELECT IFNULL(yes,'empty') FROM event_attendees WHERE event_id IN (2877501688,861989233,1926865450)

Jag vet att event_id 2877501688 inte finns i databasen och då är det tänkt att 'empty' ska visas istället, men när jag kör ovanstående kod så får jag bara två rader, och inte tre.
Citera
2013-01-22, 12:29
  #2
Medlem
dethalvabarnets avatar
Du har nog missförstått hur ifnull() fungerar.
Det måste finnas en rad med en kolumn där värdet är null för det ska fungera.
Citera
2013-01-22, 12:31
  #3
Moderator
Protons avatar
Citat:
Ursprungligen postat av SuperChihuahua
SQL-kod i MySQL:
Kod:
SELECT IFNULL(yes,'empty') FROM event_attendees WHERE event_id IN (2877501688,861989233,1926865450)

Jag vet att event_id 2877501688 inte finns i databasen och då är det tänkt att 'empty' ska visas istället, men när jag kör ovanstående kod så får jag bara två rader, och inte tre.
IFNULL funkar inte på det sättet, du kan inte använda den på något som inte finns alls, i detta fall en rad med ett id som inte finns.

Hade attributet "yes" i raden med id 2877501688 varit NULL däremot hade du fått ut "empty". NULL betyder att ett värde är NULL, inte att det inte finns alls.
Citera
2013-01-22, 12:33
  #4
Medlem
SuperChihuahuas avatar
Citat:
Ursprungligen postat av dethalvabarnet
Du har nog missförstått hur ifnull() fungerar.
Det måste finnas en rad med en kolumn där värdet är null för det ska fungera.

Aha - då får jag leta reda på något annat istället!
Citera
2013-01-23, 09:35
  #5
Medlem
Du tänker på ISNULL(Kolumn, AnnarsVärde) ?
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback