私はmysqlを使用していて、null値でカラムを更新する必要があります。私はこれまでさまざまな方法を試してみましたが、得られた最良のものは空の文字列です。
これを行うための特別な構文はありますか?
特別な構文はありません。
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の特別な値です。 プロパティをnullにするには、次のようにします。
UPDATE table SET column = NULL;
=
の代わりにIS
を使用してください。これで問題の構文例が解決されます。
UPDATE studentdetails
SET contactnumber = 9098979690
WHERE contactnumber IS NULL;
列がnullになる可能性があるかどうかを確認してください。あなたはそれを使ってそれをすることができます
mysql> desc my_table;
列をNULLにできない場合、値をNULLに設定すると、キャストされた値になります。
ここでの例
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 queryを使用してNULL値を設定したい場合は、列値をNULL(引用符なし)に設定します。update tablename set columnname = NULL
ただし、mysqlワークベンチ内でフィールド値を直接編集している場合は、(Esc + del)キーストロークを使用して、選択した列にNULL値を挿入します。
=
の代わりにis
を使用
例:Select * from table_name where column is null
上記の回答では、同じことについて多くの方法と繰り返しが提案されています。私が述べたように私は答えを探し続けました質問ですが、ここで見つけることができませんでした。
しかし、上記の質問「列をNULL値で更新する」の反対は、「列内のすべての行をNULLに更新する」ということです。
こんなときは以下の作品
update table_name
set field_name = NULL
where field_name is not NULL;
is
もis not
はmysqlで動作します
true nullではなく空文字列のもう1つの考えられる理由は、フィールドがインデックスであるかインデックスの一部であることです。これは私に起こりました。phpMyAdminを使用して、 "Null"チェックボックスをチェックして " - "を押すことでNULLsを許可するように、テーブルのフィールドの構造を編集しました 保存 "ボタン"テーブルの価格設定は正常に変更されました"と表示されていたので、変更が発生したと想定しました - 変更はしませんでした。これらのフィールドをすべてNULLに設定するためにUPDATEを実行した後は、代わりにempty stringsに設定されていました。テーブル構造をもう一度見て、そのフィールドの "Null"列が 'no'に設定されていることを確認しました。そのフィールドが主キーの一部であることに気付いたときです。
ここでの問題は、引用符が文字列値にリテラルとして入力されていることにあります。以下を使用して、これらの列をNULLに設定できます。
UPDATE table SET col=NULL WHERE length(col)<3;
もちろん最初にこれらの値が実際に ""であることを確認する必要があります。
SELECT DISTINCT(col) FROM table WHERE length(col)<3;
あなたが従うなら
UPDATE table SET name = NULL
名前が "" NULLでないMYSQLはクエリを意味します
SELECT * FROM table WHERE name = NULL
が機能しない、または失望する