2017-02-21 5 views
0

Ich habe eine Datenbank mit den Feldern: land, zone, domestic. Und ich möchte alle diese Informationen aus, je nachdem, welches Land der Benutzer wählt. Also dachte ich, ich mache das: SELECT * FROM myDB WHERE land=Norway (Norwegen ist ein gespeichertes Land).MySQL, wie man eine bestimmte Zeile aus einer Tabelle

Aber ich bekomme den Fehler unknown column Norway. Liegt das daran, dass es Norwegen nicht finden kann oder was scheint das Problem zu sein?

+1

Fehlende Anführungszeichen für Zeichenfolge –

+1

Meintest du das? 'SELECT * FROM myDB WHERE Land = 'Norwegen'? –

+0

'myDB' ist Ihr Tabellenname, richtig? Wenn es Ihr * Datenbankname ist, sollten Sie [SaggingRufuses-Antwort] beachten (http://stackoverflow.com/a/42366991/3536236). – Martin

Antwort

6

Es sieht aus wie Sie nicht ein Tabellenname versuchen so etwas wie dies die Angabe:

SELECT * FROM MyDB.MyTable 
WHERE land = 'Norway' 

beachten Sie auch, dass String Norwegen in Apostrophe ist

+0

Das Problem waren die Zitate. Danke! –

1

Sie müssen Anführungszeichen um wörtliche

SELECT * FROM myDB.tablename WHERE land='Norway'; 

(und ein richtiger Tabellenname) andernfalls wird Ihr Wert wie ein Spaltenname verwendet und geben Sie den Fehler Unbekannte Spalte Norwegen.

-1

Sie können mit `Markierungen für Spalten/Tabellen Auswahl, so dass Sie so etwas wie

SELECT `column1`,`column2` FROM `tablename` WHERE `column`="value" 
+0

Es kann auch einzeln, auch doppelt, beide funktioniert – gyurix

+0

'Mit einfachen Anführungszeichen für String-Literale definiert (und erforderlich) durch den SQL-Standard'. [Referenz] (http://stackoverflow.com/a/11321508/3536236). Während doppelte Anführungszeichen funktionieren (und das hat mich überrascht) und sind technisch nicht falsch, es ist überhaupt nicht Best Practice. – Martin

+0

ok, meine Antwort bearbeitet – gyurix

2

Sie die einfachen Anführungszeichen vor und nach dem Ländernamen tun sollten verpasst, die Sie verwendet haben, wie pro mein Kommentar die Frage früher!

SELECT * FROM myDB WHERE land = 'Norway' 

Die obige Abfrage geht davon aus, dass Ihre Tabelle tatsächlich als myDB

0

gestattet Du Abfrage eine where-Klausel verwenden, die eine Spalte mit Text konfrontieren. Um zu vergleichen, müssen Sie dem dbms den zu vergleichenden Wert mitteilen. Unter Verwendung nur Norwegens versteht es nicht, dass Sie nach der Reihe mit Norwegenwert fragen. Mit "Norway" sagen Sie "Hey dbms, hier sind Sie Ihr Text zu konfrontieren". Ich hoffe, dass ich helfen soll.

Verwandte Themen