MySQL SELECT WHERE IN LISTE und NICHT IN LISTE in der gleichen SQL

Habe ich dieses:

    $ids = "1,2,3,4,5";
    $sqlQuery = "SELECT id, moderation_date
                    FROM table_live
                    WHERE id IN (".$ids.")";

    $q = $this->CI->db->query($sqlQuery);

    if($q->num_rows() > 0) {
        foreach ($q->result() as $row) {
            $arr[] = $row;
        }
    }

    return $arr;

Dies ist nur gut funktioniert, wenn alle ids existieren in table_live
und zurück

           array([id] => 1 [moderation_date] => 2012-04-11 12:55:57)....

Das problem: Wenn ich sende eine Liste von ids 1-2-3-4-5 wo nur 1-2-5 entsprechen, die IN der LISTE Klausel
Ich muss, um alle in der Liste und für diejenigen, die nicht mit der Liste ein null-Wert.

           array([id] => 3 [moderation_date] => null) 
  • Bitte geben Sie sample-Daten und die gewünschte Ausgabe.
  • wenn alle nicht-vorhandenen ids haben moderation_date als NULL Sie können es verwenden, während die Zuordnung der $arr[]
InformationsquelleAutor Adrian P. | 2012-04-19
Schreibe einen Kommentar