Hallo,

De functie IFNULL( expr1, expr2) zal wel bekend zijn bij jullie. (indien niet: http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html)

Wat ik nu wil is het volgende: selecteer alles van de tabel, indien null, geef "null", anders geef de waarde.

Wat ik dacht:
SELECT IFNULL( *, "NULL" ) FROM tabel
=> dit doet ie echter niet. Weet iemand hier een oplossing voor?

Alvast bedankt, groetjes Michele
Hele wilde gok:
SELECT IFNULL(SELECT * FROM tabel, "null")
Heb deze functie nog nooit gebruikt, maar het lijkt me dat je op de plaats van het sterretje wel een kolomnaam in moet vullen...
je zal ipv * het exacte veld moeten geven.. bovendien, je hoeft deze functie niet te gebruiken als je bij de 2e expressie ook al NULL geeft.
Dat is het em nu net, het is een klasse voor backup van een tabel.
Dus de exacte velden verschillen per tabel...
De reden waarom ik bij de 2de expressie null zet is wel degelijk van belang aangezien bij een insert "" verschilt van NULL...
Gewoon uit nieuwsgierigheid, maar waarom is controleren of hij cel leeg is niet genoeg?

<?php
while($row = mysql_fetch_assoc($res)) {
foreach($row as $cel => $value) {
if(empty($value)) {
$row[$cel] = 'null';
}
}
echo $row['blaat'];
}
?>

Edit: Oke, nu snap ik waarom.
Maar je zal idd de kolom naam op moeten geven. Je kan de kolomnamen opvragen met DESCRIBE tablenaam; Als je geen zin in moeilijk doen hebt, moet je Jelmer zijn 2e query gebruiken :)
Je script wordt er dus een stuk langer van..
werkt helaas ook niet:
SELECT IFNULL(SELECT * FROM tabel, "null")
Je kan natuurlijk ook even de velden van de tabel ophalen via die extra query SHOW COLUMNS :)

SELECT
    CASE
        WHEN ISNULL(veldnaam) THEN 'null'
    ELSE veldnaam
    END
    AS gecheckte_veldnaam
FROM tabelnaam

Reageren