Hallo liebe Gemeinde,
ich habe mit jetzt vorgenommen, eine
sql-abfrage zu optimieren.
hier ist sie:
SQL-Code:
SELECT * FROM ANGEBOTE WHERE VON <= 'NOW' AND BIS >= 'NOW'
AND ANG_EXCLUDE NOT LIKE '%;;%'
AND ANG_EXCLUDE_GRUPPEN NOT LIKE '%;1;%'
AND( (ANG_PRODUKTE LIKE '%;;%' AND ANG_KUNDEN LIKE '%;;%')
OR (ANG_PRODUKTE LIKE '%;*;%' AND ANG_KUNDEN LIKE '%;*;%')
OR (ANG_PRODUKTE LIKE '%;;%' AND ANG_KUNDEN LIKE '%;*;%')
OR (ANG_PRODUKTE LIKE '%;*;%' AND ANG_KUNDEN LIKE '%;;%') )
ich sage auch kurz was dazu: die felder ANG_KUNDEN, ANG_PRODUKTE ANG_EXLCLUDE, ANG_EXCLUDE_GRUPPEN sind eine Art Array als string realisiert. (mir fiel kein besserer weg ein eine R^3 matrix zu realisieren...
)
so. jetzt hab ich mich mal mit den logik-rechenregeln darangetraut und bin auf foolgendes gestoßen:
das
SQL-Code:
AND( (ANG_PRODUKTE LIKE '%;;%' AND ANG_KUNDEN LIKE '%;;%')
OR (ANG_PRODUKTE LIKE '%;*;%' AND ANG_KUNDEN LIKE '%;*;%')
OR (ANG_PRODUKTE LIKE '%;;%' AND ANG_KUNDEN LIKE '%;*;%')
OR (ANG_PRODUKTE LIKE '%;*;%' AND ANG_KUNDEN LIKE '%;;%') )
schreibe ich mal....
ähh nix schreiben... habe hier ein bild angehängt, wo die rechnung drin ist. (das forum könnte *tex vertragen
)
so.. wie man auch erwarten kann, liefert die "rechnung" als
sql-
query müll.
jetzt meine frage an euch kenner,
welche ansätze der optimierung gibt es ohne die struktur komplett über den haufen schmeissen zu müssen?
gruß
mojo