Hab ein parser für eine WHERE Bedingung geschrieben.
OR wird als erstes behandelt, gefolgt von AND / NOT (gleichwertig).
Als Ergebnis vom parser bekomm ich (SELECT wurde ergänzt):
Wieso bekomm ich z.B. GraphicsConfiguration.html im Ergebnis zu Gesicht? Da ist doch "val" überhaupt nicht drin?
Und warum liefert mir:
überhaupt kein Ergebnis: Wenigstens im letzterem müsste es doch vorhanden sein.
Mfg Markus
OR wird als erstes behandelt, gefolgt von AND / NOT (gleichwertig).
Als Ergebnis vom parser bekomm ich (SELECT wurde ergänzt):
PHP-Code:
SELECT * FROM serverlink WHERE ( (UPPER(serverlink.file) LIKE UPPER('%co%')) OR
(UPPER(serverlink.directory) LIKE UPPER('%co%')) AND (UPPER(serverlink.file)
LIKE UPPER('%val%')) OR (UPPER(serverlink.directory) LIKE UPPER('%val%')))
Array
(
[0] => Array
(
[0] => 1
[id] => 1
[1] => C:/j2sdk1.4.2/doc/docs/api/java/awt/class-use/
[path] => C:/j2sdk1.4.2/doc/docs/api/java/awt/class-use/
[2] =>
[directory] =>
[3] => GraphicsConfiguration.html
[file] => GraphicsConfiguration.html
)
[1] => Array
(
....
[2] =>
[directory] =>
[3] => GraphicsConfigTemplate.html
[file] => GraphicsConfigTemplate.html
)
...
[994] => Array
(
....
[2] =>
[directory] =>
[3] => constant-values.html
[file] => constant-values.html
)
Und warum liefert mir:
PHP-Code:
SELECT * FROM serverlink WHERE ( (UPPER(serverlink.file) LIKE
UPPER('%val%')) OR (UPPER(serverlink.directory) LIKE
UPPER('%val%')) NOT (UPPER(serverlink.file) LIKE
UPPER('%co%')) OR (UPPER(serverlink.directory) LIKE UPPER('%co%')))
Mfg Markus
Kommentar