如何将数据插入到其他列中没有 NULL 的特定列中?

How to INSERT data into a specific column without NULLs in the other columns?

我有一个 table ("table1") 有 3 列,分别是 col1、col2 和 col3(每列都是 VARCHAR),有 4 个值,如下所示:

col1   col2   col3
datA1  datB1  datC1
datA2  

我需要能够在不影响其他列的情况下随时将数据添加到任何列中。网上很流行的代码是(比如说我们只需要在col2和col3列添加数据):

INSERT INTO table1 (col2, col3)
VALUES ('datB2', 'datC2');

但它会添加新行,如下所示:

col1   col2   col3
datA1  datB1  datC1
datA2
NULL   datB2  datC2

我真正需要的是用新值填充“col1”列中以值“datA2”开头的行,并获得如下所示的 table:

col1   col2   col3
datA1  datB1  datC1
datA2  datB2  datC2

table 有 3 列,每列响应特定类型的值(例如:名称、颜色、尺寸)。我需要的只是在特定列中随时添加新值的可能性,如果之前有空闲单元格,则让它们不带 Null 和新行。

如果要向现有行添加数据,则必须使用 UPDATE 语句。例如:

UPDATE table1 SET
col2 = 'data5'
col3 = 'data6'
FROM table1
WHERE col1 = 'data4'

而且您的问题的根源看起来确实是数据库设计不当,但此查询只是为了向您展示如何向现有行添加数据。

使用这个,如果值 null 则插入空值。

$cal1=$cal1 ? "data5" : '';
$cal2=$cal2 ? "data6" : '';
INSERT INTO table1 (col2, col3)
VALUES ("'.$cal1.'", "'.$cal2.'");

给定一个 table 结构,有两个数据行:

key         value
--------------------
team        accounts
manager     jeff

每次你想改变一个值,你需要检查它是否已经存在(对于更新),或者不存在(对于插入)。因此,要更改 manager 属性 的值:

if exists(select * from keyValues where key = 'manager')
    update keyValues set value = 'mike' where key = 'manager'
else
    insert into keyValues ('manager', 'mike')

我找到了解决方案(一系列逻辑操作):

1) CHECK 如果有一个单元格(在目标列中)的值为 ""NULL.

2) IF 它有其中一个,然后重写第一个,将此行中其他单元格的值保留在它们的位置(假设我们使用 UPDATE)))).

3) ELSE 只需在该行的另一个单元格中添加所有 NULL 的新行。

如果我们想同时将一些值添加到不同的列中,我们可以为所有这些准备查询,然后同时执行它们(抱歉重复)。

如果我们需要在一个查询中的同一列中添加一些值,我们可以使用循环来准备它(重复第 1 段和第 2 段(或者,可选地,第 3 段)。

使用这个:

INSERT INTO table1 (col2, col3)
VALUES ('datB2', 'datC2')
WHERE col1 = datA2;
UPDATE table1
SET col2 = dataB2, col3 = dataC2
WHERE col1 = dataA2;

这可能有助于您的目的。

假设您有 table
CLIENT_MASTER

客户无姓名
C00001 伊万
C00002 喜满树

现在您添加一个新列 City

ALTER table CLIENT_MASTER  
ADD( City varchar(10));

现在,如果您想在现有行中添加值,您可以使用 UPDATE 命令。
例如

UPDATE CLIENT_MASTER  
SET City='Delhi'  
WHERE ClientNo='C00001';

更新后的table为
ClientNo Name City
C00001 伊万德里
C00002 喜满树 NULL