IN() umgekehrt

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • IN() umgekehrt

    Hi,

    vorneweg, das ganze spielt sich in einer SQLite Datenbank ab.

    ich habe in meiner Tabelle Datensätze die für bestimmte Tage des Monats gelten. Die Tage sind Kommagetrennt in der Tabelle.

    name=aufgabe, tage=1,16,19,21

    Meine Frage ist nun wie selektiere ich am einfachsten alles was für heute an Aufgaben ansteht?


    PHP-Code:
    $str_sql "SELECT * FROM tab1 WHERE ".date('j')." IN(tage)";
    //funktioniert ja leider nicht
    //Fehler: Warning: SQLiteDatabase::query() [function.query]: 
    //        right-hand side of IN operator must be constant in 
    LIKE hilft mir auch nicht weiter, da LIKE '%1%' ja auch 18, 19, etc mitnimmt.

    Gibt es evtl eine bessere Möglichkeit die Datenzu strukturieren?

    Danke.

  • #2
    Hab mir jetzt ne Behelfslösung gebaut:

    PHP-Code:
    $str_sql "SELECT * FROM tab1 WHERE " .
               
    "  ( tage LIKE '%,".date('j').",%' OR" .
               
    "    tage LIKE '%,".date('j')."' OR " .
               
    "    tage LIKE '".date('j').",%' OR " .
               
    "    tag = ".date('j')." " .
               
    "   ) ";


    //ergibt:
    $str_sql "SELECT * FROM tab1 WHERE 
               ( tage LIKE '%,15,%' OR 
                 tage LIKE '%,15' OR 
                 tage LIKE '15,%' OR 
                 tag = 15
                )"


    Wenn jemand einen besseren Vorschlag hat, bitte her damit

    Kommentar


    • #3
      normalisierte Tabelle, d.h. noch ne zweite Tabelle anlegen und da steht nur id und tag drin (oder name und tag), z.b. für deinen demo-datensatz
      deine Tabelle um Tag erleichtern und um id bereichern
      Code:
      id  name
      1   aufgabe
      neue Tabelle
      Code:
      id  tage
      1   1
      1   16
      1   19
      1   21
      dann kannst du die zweite Tabelle abfragen und dann mit der id die entsprechenden Datensätze aus Tabelle 1 fischen

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar

      Lädt...
      X