php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.03.2005, 12:45  
Gast
 
Beiträge: n/a
Standard NOT LIKE Abfrage bringt kein Ergebnis in leerem Feld

Hallo

ich habe eine Abfrage wie


Code:
select produktbezeichnung from produkte where (produktbezeichnung NOT LIKE '%Lader%') and (produktbeschreibung NOT LIKE '%Lader%') order by produktbezeichnung
das merkwürdige ist, wenn im Feld "produktbeschreibung" nichts drin ist (nicht mal ein leerzeichen, gar nix, NULL) dann gibt es keinen Treffer, obwohl ich doch mit "NOT LIKE '%Lader%' frage ob da das der String "Lader" vorkommt. Aber er kommt ja nicht vor, weil das Feld absolut leer ist. Und trotzdem gibt es keinen Treffer.

Wenn ich in das Feld ein einziges Zeichen setzen, egal welches, dann funktioniert die Abfrage. Ich hoffe es gibt noch eine andere Möglichkeit als unnütz Leerzeichen abzuspeichern...

kann mir jemand einen Tipp geben was es damit auf sich hat?

Danke

Gruss
Franz
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.03.2005, 13:47  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

vieleicht mal so probieren:
Code:
((produktbezeichnung NOT LIKE '%Lader%') AND
(produktbeschreibung NOT LIKE '%Lader%'))
OR 
((produktbezeichnung = '') AND
(produktbeschreibung = ''))
robo47 ist offline  
Alt 26.03.2005, 13:54  
Gast
 
Beiträge: n/a
Standard

danke, aber so funzt das nicht. Man kann MySQL mit einem ='' nicht nach einem "NULL" fragen, gibt immer false zurück bzw. keinen match auch wenn es NULL ist. (NULL ist gleichbedeutend mit "nix")

habs inzwischen so gelöst:

PHP-Code:
<?php
select produktbezeichnung from produkte where 
(produktbezeichnung NOT LIKE '%Lader%') and ((produktbeschreibung NOT LIKE '%Lader%') or (produktbeschreibung IS NULL)) order by produktbezeichnung
?>
man beachte das "IS NULL". Damit klappt es. Allerdings geht das wahrscheinlich zu lasten der abfrage-performance, deshalb habe ich mich entschlossen einfach beim abspeichern der Daten mindestens ein Leerzeichen abzuspeichern falls nix eingegeben wurde (davon merkt der user nichts da es in der maske rausgefiltert wird). Mein Abfrage-String ist inzwischen weit über 1024 zeichen lang. Mit den ganzen IS NULL Abfragen wäre er nahezu doppelt so lang

Gruss
Franz
 
Alt 26.03.2005, 14:01  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

öhm einfach bei der datenbank stukrur ansetzen? und NULL nicht erlauben, dann müsste das mit = '' gehen.

mfg
robo47
robo47 ist offline  
Alt 26.03.2005, 15:25  
Gast
 
Beiträge: n/a
Standard

öh.. ja
geht auch
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
komplizierte SQL-Abfrage keinplanvonnix PHP Tipps 2008 3 23.04.2008 15:42
Ergebnis aus Abfrage in Datenbank einfügen BBieniek PHP Tipps 2008 1 11.01.2008 02:51
UTF8 Dump erzeugt nach import in UTF8 kod DB falsche Umlaute Carino Datenbanken 18 07.05.2007 23:49
Abfrage mit NOT LIKE funktioniert nicht wirklich PsychoEagle Datenbanken 6 26.09.2006 11:45
Abfrage mit LIKE (nur verkehrt rum :D) PsychoEagle Datenbanken 3 09.08.2006 16:52
Abfrage mit LIKE Datenbanken 3 22.06.2006 10:38
abfrage dierkt und über php gleich aber verschidene ergebnis EvilDragon Datenbanken 7 06.02.2006 15:19
abfrage doppeltes ergebnis?? PHP Tipps 2007 7 14.12.2005 12:46
Abfrage von mehreren Werten mit Hilfe von LIKE? PHP Tipps 2005-2 4 12.09.2005 19:19
Abfrage von Char-Feldern Datenbanken 9 04.02.2005 14:06
WHERE LIKE abfrage Datenbanken 2 06.01.2005 09:15
Bei Abfrage leeres Feld erkennen und reagieren? Datenbanken 6 13.12.2004 15:21
nach Abfrage mit Ergebnis weiterarbeiten..? Datenbanken 2 13.12.2004 01:01
mysql verknüpfte abfrage mqs PHP Tipps 2004-2 2 22.11.2004 13:05
Diskussion zu Tutorial MySQL-Datenbank durchsuchen Guradia Off-Topic Diskussionen 9 22.10.2004 19:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-tipps-2005/20210-not-like-abfrage-bringt-kein-ergebnis-leerem-feld.html, like abfrage bei leeren felder, like abfrage auf leeres feld, zend where notlike, php not like leere felder

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:27 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.