Używam mysql i muszę zaktualizować kolumnę z wartością null. Próbowałem tego na wiele różnych sposobów, a najlepsze, co otrzymałem, to pusty ciąg.
Czy jest do tego specjalna składnia?
mysql
sql-update
jim
źródło
źródło
Odpowiedzi:
Brak specjalnej składni:
źródło
NULL
to specjalna wartość w SQL. Aby wyzerować właściwość, wykonaj następujące czynności:źródło
Użyj
IS
zamiast=
To rozwiąże Twój problem przykładowej składni:źródło
Pamiętaj, aby sprawdzić, czy Twoja kolumna może być pusta. Możesz to zrobić za pomocą
Jeśli twoja kolumna nie może mieć wartości null, po ustawieniu wartości na null będzie to wartość rzutowania na nią.
Oto przykład
źródło
Dla tych, którzy mają podobny problem, zauważyłem, że podczas „symulacji”
SET = NULL
zapytania PHPMyAdmin generuje błąd. To czerwony śledź ... po prostu uruchom zapytanie i wszystko będzie dobrze.źródło
W powyższych odpowiedziach zaproponowano wiele sposobów i powtórzeń tego samego. Szukałem odpowiedzi, jak wspomniano, ale nie mogłem tu znaleźć.
Ale w przeciwieństwie do powyższego pytania „zaktualizuj kolumnę o wartość null” Może być „ZAKTUALIZUJ WSZYSTKIE WIERSZE W KOLUMNIE DO NULL”
W takiej sytuacji działa dalej
is
is not
działa również w mysqlźródło
użyj
is
zamiast=
Na przykład:
Select * from table_name where column is null
źródło
Innym możliwym powodem pustego ciągu zamiast prawdziwej wartości null jest to, że pole jest indeksem lub jest częścią indeksu. Przydarzyło mi się to: używając phpMyAdmin, wyedytowałem strukturę pola w jednej z moich tabel, aby zezwolić na wartości NULL, zaznaczając pole wyboru „ Null ”, a następnie naciskając przycisk „ Zapisz ”. Wyświetlany był komunikat „Cena stołu została pomyślnie zmieniona ”, więc założyłem, że zmiana nastąpiła - tak się nie stało. Po wykonaniu UPDATE w celu ustawienia wszystkich tych pól na NULL , zamiast tego ustawiono je na puste ciągi , więc ponownie przyjrzałem się strukturze tabeli i zobaczyłem, że „ Null„kolumna dla tego pola została ustawiona na„ nie ”. Wtedy zdałem sobie sprawę, że to pole było częścią klucza podstawowego !
źródło
Jeśli chcesz ustawić wartość null za pomocą aktualizacji zapytania ustaw wartość kolumny na NULL (bez cudzysłowów) zaktualizuj nazwę tabeli ustaw nazwę kolumny = NULL
Jeśli jednak bezpośrednio edytujesz wartość pola w środowisku roboczym mysql, użyj klawisza (Esc + del), aby wstawić wartość null do wybranej kolumny
źródło
jeśli podążasz
wtedy nazwa to "", a nie NULL IN MYSQL oznacza zapytanie
SELECT * FROM table WHERE name = NULL
nie działa lub rozczarowuje sięźródło
Podejrzewam, że problem polega na tym, że cudzysłowy zostały wprowadzone jako literały w wartości ciągu. Możesz ustawić te kolumny na null za pomocą:
Powinieneś oczywiście najpierw sprawdzić, czy te wartości są rzeczywiście "" takie jak:
źródło
jeśli ustawisz NULL dla wszystkich rekordów, spróbuj tego:
LUB po prostu ustaw NULL dla specjalnych rekordów użyj WHERE
źródło