Hallo,
SELECT * FROM model, company, number, type
WHERE number.number = 'A12345'
AND number.number LIKE '%%%'
> ==> Funktioniert!
> 'A12345' wird ausgegeben.
Ja, denn der Feldinhalt kann durchaus gleich "A12345" UND wie "%%%" sein, denn wie "%%%" ist alles Mögliche ;-).
>
> ~~~sql
SELECT * FROM model, company, number, type
> WHERE number.number = '%%%'
> AND number.number LIKE 'A12345'
>
==> Funktioniert nicht!
MySQL lieferte ein leeres Resultat zurück.
Ja, denn _kein_ Feldinhalt kann gleich "%%%" UND wie "A12345" sein, denn wenn der Feldinhalt gleich "%%%" ist, dann stehen dort drei "%"-Zeichen drin und eben _nicht_ "A12345".
Liegt es an dem grundsätzlichen Dilemma, dass ein exakter Wert zwar einem LIKE-Wert entsprechen kann, aber ein LIKE-Wert nicht einem Exakten?
Nein.
Ich ging bisher davon aus, dass die Erfüllung einer Bedingung ausreicht, um die Abfrage auszugeben?
Nein, nicht bei UND-Verknüpfungen. Wozu, denkst Du, gibt es ODER-Verknüpfungen?
Aber wenn ohnehin nur _entweder_ exact ODER partial gefüllt per POST zurückkommen, warum baust Du dann nicht je Fall per PHP exakt je ein SQL-Statement zusammen? Also wenn exact gefüllt zurückkommt, dann ...WHERE number.number = 'A1234'
und wenn partial gefüllt zurückkommt, dann ...WHERE number.number LIKE '%A12%'
.
Und bitte beachte dedlfix' Hinweis auf die kontextgerechte Behandlung.
viele Grüße
Axel