phpbar.de logo

Mailinglisten-Archive

[php] MySQL: =?ISO-8859-1?Q?L=FCcken_in_Intervallen_fi?= =?ISO-8859-1?Q?nden?=

[php] MySQL: Lücken in Intervallen fi nden

Mister Fu php_(at)_phpcenter.de
Wed, 11 Sep 2002 11:43:33 +0200


Jens Vonderheide wrote:
> Hallo,
> 
> ich habe eine Tabelle mit einer ID, die für mehrere Einträge gleich ist
> sowie einem Start- und Endedatum, etwa so:
> 
> CREATE TABLE spans (
>    id_common int unsigned not null,
>    start     date not null,
>    end       date not null
> )
> 
> Jetzt suche ich für alle existierenden Werte von id_common die Intervalle,
> für die es keinen Eintrag gibt.
> An dieser Query verzweifel ich jetzt schon einige Tage, hat jemand eine
> Idee?
> 
> Danke,
> Jens


Hallo Jens,

ich würde eine Lösung mittels eines Arrays vorschlagen:

  select * from spans;
  for (jede id_common)
   {
     $zeiger = $start;
     while ($zeiger!=$end)
      {
       $array[$zeiger] = true; *)
       setze_zeiger_weiter;
      };
   };

[ *) Hier vielleicht sogar die id_common's speichern, damit
Du bei Bedarf auch gucken kannst, in welchen id's ein bestimmtes
Datum vorkommt. ]

Danach kannst Du gucken, welche Daten des Arrays nicht true sind (bzw. 
keinen Eintrag haben) ... da hast Du Deine Daten, die nirgendwo
vorkommen. Aufeinanderfolgende leere Array-Einträge kann man dann
bestimmt auch noch irgendwie Intervallweise ausgeben.

Gruß,
Torsten


php::bar PHP Wiki   -   Listenarchive