2

以下の問題の解決策を検索してみましたが、列に null 値を挿入するための「方法」が結果に返されます。これを防止しようとしています。私を教育してください。

1つの列に値を挿入すると、他のすべての列に同じ量のレコードが追加されますが、それらは空です!! 何?!?!?

    INSERT INTO departments(`Account Executive 3`) VALUES('test'),('test2');
    Query OK, 2 rows affected

これはその列の結果です:

    SELECT `Account Executive 3` FROM departments;
    +---------------------+
    | Account Executive 3 |
    +---------------------+
    | test                |
    | test2               |

すごい!ちょうど私が欲しかったもの。これは私が望んでいないものです:

    SELECT `Account Executive 2` FROM departments;
    +---------------------+
    | Account Executive 2 |
    +---------------------+
    |                     |
    |                     |
    2 rows in set (0.00 sec)

X 量の空の行が 1 つおきの列に追加されるのはなぜですか??

4

1 に答える 1

2

テーブルに挿入すると、新しいデータ行が挿入されます。値を取得するかどうかに関係なく、テーブル内のすべての列が含まれます。

Excel スプレッドシートを考えてみてください。新しい行を挿入してセルに値を入れると、セルA1が 1 つだけになるわけではありません。セルだけに値を入れるかどうかに関係なく、行はシート全体に広がりますA1

Tbl説明のために、3 つの列と 1 つの行を持つテーブル ( ) があるとします。

COL_A    COL_B    COL_C
=====    =====    =====
1        Test     123

あなたならINSERT INTO Tbl (COL_A) VALUES (2)、あなたは今持っているでしょう:

COL_A    COL_B    COL_C
=====    =====    =====
1        Test     123
2        

別のINSERT INTO Tbl (COL_A, COL_C) VALUES (3, 234)結果:

COL_A    COL_B    COL_C
=====    =====    =====
1        Test     123
2        
3                 234

新しい空の列には、実際にはNULL;が含まれています。より明確に示すために、空白のままにしました。最後は実際にはもっと似ているでしょう

COL_A    COL_B    COL_C
=====    =====    =====
1        Test     123
2        NULL     NULL   
3        NULL     234
于 2013-10-04T23:52:07.187 に答える