Wie bringe ich SQL bei, dass ich nur das Ergebnis will, wenn das ganze Feld übereinstimmt?

... komplette Frage anzeigen

3 Antworten

Was definitiv ein Problem darstellen könnte, ist, dass "code" ein reserviertes (Schlüssel)Wort in MySQL ist, du kannst es zwar trotzdem als Tabellenname nutzen wenn du unbedingt willst, allerdings solltest du es in Queries dann in Backticks setzen, damit eindeutig ist, dass nicht das MySQL Keyword gemeint ist.

Keywords und reservierte Worte in MySQL: http://dev.mysql.com/doc/refman/5.7/en/keywords.html

Ob das jetzt das ist, was das Problem verursacht, kann ich leider auch nicht sagen, hab das so noch nicht ausprobiert, aber abgesehen davon scheint das Query so weit Ok zu sein und sollte nur Datensätze mit genau diesem Wert ausgeben, für ein Ergebnis, wie du es jetzt offenbar bekommst, müsstest du eigtl "... WHERE `Code` LIKE '95099449%' ..." benutzen.



BTW: 

SELECT *

Das macht man nicht ;)
Immer genau die Felder angeben, die man als Ergebnis benötigt.

=> http://php-de.github.io/jumpto/code-smells/#select-all

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von MinecrafterPG
22.05.2016, 14:19

Okay Danke,

es lag warscheinlich am Namen ;-)

0

Meiner Meinung nach müsste MYSQL eine Fehlermeldung ausgeben und nicht einfach irgendwas, was keinen Sinn macht.

Wenn man irrtümlich ein Schlüsselwort verwendet, so gibt es zwei Möglichkeiten:

Die Datenbank kann damit was anfangen, aber nicht im Sinne des Anwenders, sondern wie es logisch sich ergibt.

Die Datenbank kommt mit dem Schlüsselwort nicht klar, weil die weiteren Angaben nicht dazu passen (Normalfall). Dann muss sie eine Fehlermeldung ausgeben, das sich auf die Verwendung des Schlüsselwortes bezieht.

Allerdings habe ich noch nie das Wort CODE verwendet und weiß auch nicht, was es als Schlüsselwort bedeutet. Insofern kann ich nicht beurteilen wie das Ergebnis zu beurteilen ist.

Antwort bewerten Vielen Dank für Deine Bewertung

Ich versteh deine Frage überhaupt nicht.

Soll er dir 9509944943437212364043650 nun ausgeben wenn du nur nach 95099449 suchst oder nicht?

So wie dein Query jetzt aussieht, gibt er dir nur Zeilen aus welche genau 95099449 beinhalten.


Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von MinecrafterPG
22.05.2016, 12:54

Ich möchte, dass wenn man nach 95099449 sucht, dass 9509944943437212364043650 nicht angezeigt wird sondern nur, wenn auch wirklich nach 9509944943437212364043650 gesucht wird.

0

Was möchtest Du wissen?