Avatar billede donslund Nybegynder
07. april 2006 - 13:58 Der er 8 kommentarer og
1 løsning

FInde poster hvor mindst ét felt er udfyldt

Jeg har en tabel med en række felter.

Jeg skal finde alle poster hvor mindst ét af disse felter er udfyldt.
Avatar billede michael_stim Ekspert
07. april 2006 - 14:16 #1
Ved faktisk ikke om der er andre måder end den kedelige:
WHERE (felt1 IS NOT NULL AND felt2 IS NOT NULL ...)
Avatar billede michael_stim Ekspert
07. april 2006 - 14:18 #2
Og så kan man skifte AND ud med OR ;o)
Avatar billede michael_stim Ekspert
07. april 2006 - 14:20 #3
Men hvordan kan du få tomme rækker?
Avatar billede donslund Nybegynder
07. april 2006 - 14:21 #4
Ikke tomme rækker, men tomme felter i en række.

Men tak.
Avatar billede razmuz_dk Nybegynder
08. april 2006 - 00:17 #5
Jaeh, det er også det han svarer på. Den hurtige løsning er

WHERE felt1 IS NOT NULL OR felt2 IS NOT NULL osv... som  michael allerede har nævnt.

Dog kan du få betydeligt bedre performance ved at bruge en UNION (her kan der udnyttes flere indexes på en gang)
Avatar billede showsource Seniormester
08. april 2006 - 03:26 #6
Evt.

<?php

$felt_navn = array();
$tabel = "artikler";

$fields = mysql_query("SHOW COLUMNS FROM `". $tabel ."`") or die (mysql_error());

    if (mysql_num_rows($fields) > 0) {
        while ($row = mysql_fetch_assoc($fields)) {
        $felt_navn[] = $row["Field"];
        }
    }

mysql_free_result($fields);

    if(count($felt_navn) != 0) {
        $sql = "SELECT FROM `". $tabel ."` WHERE ";

        foreach($felt_navn as $name) {
        $sql .= "`". $name ."` != ''";

            if($name != end($felt_navn)) {
            $sql .= " OR ";
            }

        }

    echo $sql;
    }

?>
Avatar billede showsource Seniormester
08. april 2006 - 03:28 #7
Og selvf. connect til DB inden query! ;O)
Avatar billede donslund Nybegynder
08. april 2006 - 09:09 #8
Ja, tak for alle jeres svar. Michaels version fungerede efter hensugten. SÅ jeg venter på, at han smider et svar.
Avatar billede michael_stim Ekspert
08. april 2006 - 09:41 #9
Godt jeg kunne hjälpe ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester