如何将数据插入到其他列中没有 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
我有一个 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