Я використовую mysql і мені потрібно оновити стовпчик з нульовим значенням. Я спробував це багато різних способів, і найкраще, що я отримав - це порожня рядок.
Чи є для цього спеціальний синтаксис?
Я використовую mysql і мені потрібно оновити стовпчик з нульовим значенням. Я спробував це багато різних способів, і найкраще, що я отримав - це порожня рядок.
Чи є для цього спеціальний синтаксис?
Відповіді:
Немає спеціального синтаксису:
CREATE TABLE your_table (some_id int, your_column varchar(100));
INSERT INTO your_table VALUES (1, 'Hello');
UPDATE your_table
SET your_column = NULL
WHERE some_id = 1;
SELECT * FROM your_table WHERE your_column IS NULL;
+---------+-------------+
| some_id | your_column |
+---------+-------------+
| 1 | NULL |
+---------+-------------+
1 row in set (0.00 sec)
NULL
є особливим значенням у SQL. Отже, щоб зняти властивість, зробіть це:
UPDATE table SET column = NULL;
Використання IS
замість =
цього вирішить ваш синтаксис прикладу проблеми:
UPDATE studentdetails
SET contactnumber = 9098979690
WHERE contactnumber IS NULL;
Не забудьте подивитися, чи може ваш стовпець бути нульовим. Це можна зробити, використовуючи
mysql> desc my_table;
Якщо ваш стовпець не може бути нульовим, тоді, коли ви встановите це значення на нульове значення, це буде значення для нього.
Ось приклад
mysql> create table example ( age int not null, name varchar(100) not null );
mysql> insert into example values ( null, "without num" ), ( 2 , null );
mysql> select * from example;
+-----+-------------+
| age | name |
+-----+-------------+
| 0 | without num |
| 2 | |
+-----+-------------+
2 rows in set (0.00 sec)
mysql> select * from example where age is null or name is null;
Empty set (0.00 sec)
Для тих, хто стикається з подібною проблемою, я виявив, що під час "моделювання" SET = NULL
запиту PHPMyAdmin видасть помилку. Це червона оселедець .. просто запустіть запит і все буде добре.
У вищенаведених відповідях запропоновано багато способів і повторів для того ж. Я продовжував шукати відповідь, як згадувалося, це питання, але не зміг знайти тут.
Але навпроти вищезазначеного питання "оновити стовпчик з нульовим значенням" Може бути "ОНОВЛЕННЯ ВСІХ РУХІВ В КОЛІНІ НА НУЛЬ"
У такій ситуації наступні роботи
update table_name
set field_name = NULL
where field_name is not NULL;
is
також is not
працює в mysql
використовувати is
замість=
Наприклад: Select * from table_name where column is null
Інша можлива причина порожнього рядка, а не справжня нуль, полягає в тому, що поле є індексом або є частиною індексу. Це сталося зі мною: використовуючи phpMyAdmin, я відредагував структуру поля в одній із моїх таблиць, щоб дозволити NULL, встановивши прапорець " Null ", потім натиснувши кнопку " Save ". " Цінова таблиця була змінена успішно ", тому я припустив, що зміни відбулися - не вдалося. Зробивши UPDATE для встановлення всіх цих полів на NULL , вони були замість цього порожніми рядками , тому я знову переглянув структуру таблиці і побачив, що " Null"для цього поля було встановлено значення" ні ". Тоді я зрозумів, що поле є частиною Первинного ключа !
Якщо ви хочете встановити нульове значення за допомогою запиту оновлення встановити значення стовпця на NULL (без лапок) оновити ім'я таблиці встановити ім'я стовпця = NULL
Однак якщо ви безпосередньо редагуєте значення поля всередині mysql workbench, використовуйте клавішу (Esc + del) для вставки нульового значення у вибраний стовпець
якщо слідувати
UPDATE table SET name = NULL
тоді назва "" не NULL IN MYSQL означає ваш запит
SELECT * FROM table WHERE name = NULL
не працювати і не розчаровувати себе
Я підозрюю, що проблема тут полягає в тому, що котирування були введені як літерали у вашому значення рядка. Ви можете встановити ці стовпці на нуль, використовуючи:
UPDATE table SET col=NULL WHERE length(col)<3;
Ви, звичайно, спочатку перевірте, чи справді ці значення є "" чимось на зразок:
SELECT DISTINCT(col) FROM table WHERE length(col)<3;