Saya menggunakan mysql dan perlu memperbarui kolom dengan nilai nol. Saya telah mencoba berbagai cara dan yang terbaik yang saya dapatkan adalah string kosong.
Apakah ada sintaks khusus untuk melakukan ini?
Saya menggunakan mysql dan perlu memperbarui kolom dengan nilai nol. Saya telah mencoba berbagai cara dan yang terbaik yang saya dapatkan adalah string kosong.
Apakah ada sintaks khusus untuk melakukan ini?
Jawaban:
Tidak ada sintaks khusus:
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
adalah nilai khusus dalam SQL. Jadi untuk membatalkan properti, lakukan ini:
UPDATE table SET column = NULL;
Gunakan IS
sebagai gantinya =
Ini akan menyelesaikan masalah Anda misalnya sintaks:
UPDATE studentdetails
SET contactnumber = 9098979690
WHERE contactnumber IS NULL;
Ingatlah untuk melihat apakah kolom Anda bisa nol. Anda dapat melakukannya dengan menggunakan
mysql> desc my_table;
Jika kolom Anda tidak boleh nol, ketika Anda menetapkan nilai ke nol, itu akan menjadi nilai pemain untuk itu.
Berikut sebuah contoh
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)
Bagi mereka yang menghadapi masalah serupa, saya menemukan bahwa ketika 'mensimulasikan' SET = NULL
kueri, PHPMyAdmin akan melempar kesalahan. Ini herring merah .. jalankan saja kueri dan semuanya akan baik-baik saja.
Dalam jawaban di atas, banyak cara dan pengulangan telah disarankan untuk hal yang sama. Saya terus mencari jawaban karena disebutkan adalah pertanyaan tetapi tidak dapat menemukan di sini.
Tetapi kebalikan dari pertanyaan di atas "perbarui kolom dengan nilai nol" Bisa jadi "MEMPERBARUI SEMUA BARIS DALAM KOLOM KE NULL"
Dalam situasi seperti ini karya berikut
update table_name
set field_name = NULL
where field_name is not NULL;
is
juga is not
berfungsi di mysql
gunakan is
sebagai ganti=
Misalnya: Select * from table_name where column is null
Alasan lain yang mungkin untuk string kosong, daripada nol benar adalah bahwa bidang tersebut adalah indeks atau merupakan bagian dari indeks. Ini terjadi pada saya: menggunakan phpMyAdmin, saya mengedit struktur bidang di salah satu tabel saya untuk memungkinkan NULLs dengan mencentang kotak centang " Null " lalu menekan tombol " Simpan ". " Tabel penetapan harga telah berhasil diubah " ditampilkan jadi saya berasumsi bahwa perubahan itu terjadi - ternyata tidak. Setelah melakukan PEMBARUAN untuk mengatur semua bidang tersebut menjadi NULL , kolom itu, sebaliknya, disetel ke string kosong , jadi saya melihat struktur tabel lagi dan melihat bahwa " Null"Kolom untuk bidang itu disetel ke ' tidak '. Saat itulah saya menyadari bahwa bidang itu adalah bagian dari kunci Utama !
Jika Anda ingin menetapkan nilai nol menggunakan kueri pembaruan set nilai kolom menjadi NULL (tanpa tanda kutip) perbarui set nama nama nama kolom = NULL
Namun, jika Anda secara langsung mengedit nilai bidang di dalam workbench mysql kemudian gunakan (Esc + del) keystroke untuk memasukkan nilai nol ke dalam kolom yang dipilih
jika kamu mengikuti
UPDATE table SET name = NULL
maka nama "" bukan NULL IN MYSQL berarti permintaan Anda
SELECT * FROM table WHERE name = NULL
tidak bekerja atau mengecewakan diri sendiri
Saya menduga masalahnya di sini adalah bahwa kutipan dimasukkan sebagai literal dalam nilai string Anda. Anda dapat mengatur kolom ini ke nol menggunakan:
UPDATE table SET col=NULL WHERE length(col)<3;
Anda tentu saja harus terlebih dahulu memeriksa bahwa nilai-nilai ini memang "" dengan sesuatu seperti:
SELECT DISTINCT(col) FROM table WHERE length(col)<3;