Ich verwende MySQL und muss eine Spalte mit einem Nullwert aktualisieren. Ich habe dies auf viele verschiedene Arten versucht und das Beste, was ich bekommen habe, ist eine leere Zeichenfolge.
Gibt es dafür eine spezielle Syntax?
mysql
sql-update
Jim
quelle
quelle
Antworten:
Keine spezielle Syntax:
quelle
NULL
ist ein spezieller Wert in SQL. Gehen Sie folgendermaßen vor, um eine Eigenschaft auf Null zu setzen:quelle
Verwenden Sie
IS
anstelle von=
Dies löst Ihre Problembeispielsyntax:quelle
Denken Sie daran, zu prüfen, ob Ihre Spalte null sein kann. Sie können das mit tun
Wenn Ihre Spalte nicht null sein kann und Sie den Wert auf null setzen, ist dies der Umwandlungswert.
Hier ein Beispiel
quelle
Für diejenigen, die mit einem ähnlichen Problem konfrontiert sind, stellte ich fest, dass
SET = NULL
PHPMyAdmin beim "Simulieren" einer Abfrage einen Fehler auslösen würde. Es ist ein roter Hering. Führen Sie einfach die Abfrage aus und alles wird gut.quelle
In den obigen Antworten wurden viele Wege und Wiederholungen für dasselbe vorgeschlagen. Ich habe immer nach einer Antwort gesucht, wie bereits erwähnt, aber hier nicht gefunden.
Das Gegenteil der obigen Frage "Aktualisieren einer Spalte mit einem Nullwert" könnte jedoch "ALLE REIHEN IN DER SPALTE AUF NULL AKTUALISIEREN" sein.
In einer solchen Situation funktioniert folgendes
is
undis not
arbeitet in mysqlquelle
verwenden
is
statt=
Z.B:
Select * from table_name where column is null
quelle
Ein weiterer möglicher Grund für die leere Zeichenfolge anstelle einer echten Null ist, dass das Feld ein Index oder Teil eines Index ist. Folgendes ist mir passiert: Mit phpMyAdmin habe ich die Struktur eines Feldes in einer meiner Tabellen bearbeitet, um NULL-Werte zuzulassen, indem ich das Kontrollkästchen " Null " aktiviert und dann auf die Schaltfläche " Speichern " geklickt habe. " Tischpreis wurde erfolgreich geändert " wurde angezeigt, daher nahm ich an, dass die Änderung stattgefunden hat - dies war nicht der Fall. Nachdem ich ein UPDATE durchgeführt hatte , um alle diese Felder auf NULL zu setzen , wurden sie stattdessen auf leere Zeichenfolgen gesetzt , also schaute ich mir die Tabellenstruktur noch einmal an und sah, dass die " Null ""Die Spalte für dieses Feld wurde auf ' Nein ' gesetzt. Da wurde mir klar, dass das Feld Teil des Primärschlüssels war !
quelle
Wenn Sie den Nullwert mithilfe der Aktualisierungsabfrage festlegen möchten, setzen Sie den Spaltenwert auf NULL (ohne Anführungszeichen). Aktualisieren Sie den Tabellennamen set columnname = NULL
Wenn Sie jedoch den Feldwert direkt in der MySQL-Workbench bearbeiten, verwenden Sie den Tastenanschlag (Esc + Entf), um einen Nullwert in die ausgewählte Spalte einzufügen
quelle
wenn du folgst
dann ist der Name "" nicht NULL IN MYSQL bedeutet Ihre Abfrage
SELECT * FROM table WHERE name = NULL
nicht arbeiten oder sich selbst enttäuschenquelle
Ich vermute, das Problem hier ist, dass Anführungszeichen als Literale in Ihren Zeichenfolgenwert eingegeben wurden. Sie können diese Spalten mit folgenden Werten auf null setzen:
Sie sollten natürlich zuerst überprüfen, ob diese Werte tatsächlich "" sind, mit:
quelle
Wenn Sie für alle Datensätze NULL festlegen, versuchen Sie Folgendes :
ODER setzen Sie einfach NULL für spezielle Datensätze und verwenden Sie WHERE
quelle