Php mysql只更新空列

Php mysql只更新空列,php,mysql,sql,sql-update,Php,Mysql,Sql,Sql Update,假设我在一个表中有4列,我有下面3列的数据 TableTest Col1 | Col2 | Col3 D11 | D12 | D21 | D22 | 通常更新查询是 Update TableTest SET Col1 = D11 , Col2 = D12 , COL3 = newdata Where Col1= D11 这种情况是,更新查询应该只将数据推送到COL3,它应该跳过Col1和Col2,因为它已经填充了数据(即使Col1和Col2的数据相同或不同)只需

假设我在一个表中有4列,我有下面3列的数据

TableTest

Col1  | Col2  | Col3
D11   | D12   |   
D21   | D22   | 
通常更新查询是

Update TableTest SET Col1 = D11 , Col2 = D12 , COL3 = newdata Where Col1= D11
这种情况是,更新查询应该只将数据推送到COL3,它应该跳过Col1和Col2,因为它已经填充了数据(即使Col1和Col2的数据相同或不同)

只需这样做:

Update TableTest SET  COL3 = newdata Where Col1= D11

UPDATE查询中,如果col1col2的值不变,则无需重新分配这些值

UPDATE TableTest 
SET COL3 = newdata 
WHERE Col1= 'D11';

若您只想更新COL3,那个么就不要在更新查询中包含其他列

查询:

Update TableTest SET COL3 = newdata Where Col1= D11
这可能有助于-

UPDATE TableTest a
INNER JOIN TableTest b ON a.Col1 = b.Col1
SET a.Col3 = 'newData'
WHERE a.Col3 IS NULL

使用同一个表的
内部联接
,以便更新相应的行

您应该使用单个查询更新整个表,如下所示:

Update TableSet SET COL3=CONCAT('D',CONVERT(Substr(Col2,2),INT)+1)
这将更新表,如下所示:

TableTest

Col1  | Col2  | Col3
D11   | D12   |  D13 
D21   | D22   |  D23

提供示例如果您只想更新Col3,您可以不使用其他COL,例如更新表格测试集Col3=newdata,其中Col1=D11您可以使用
。。。。当Col2=''时设置Col2=CASE,然后设置“newdata”,否则Col2结束,…
。这假设空的含义为
如果null为空,或者您可能需要修改
,当
相应地“56行,也有数千条记录”时,那么它是有56列还是有数千?56列,这是我输入的错误。你能解释一下它会做什么吗?我只知道我在回答中分享的一种方式这是好的。更新获取数据a上的内部连接获取数据b。
OD\u Order\u ID\u V
=b。
OD\u Order\u ID\u V
设置a。
OD\u Online\u Listing\u ID\u V
=12其中a.
OD\u Online\u Listing\u ID\u V
为空且a、 OD_Order_ID_V='CS44189505';它没有帮助我很好地检查它是
NULL
还是空值。更新fetcheddata a内部连接fetcheddata b在a.
OD\u-ID\u V
=b.
OD\u-ID\u V
设置a.
EM\u-Date\u-D
=2015-12-20',其中(a.
EM\u-Date D
为NULL或a.
EM\u-Date D\u-D
)和a.OD\u-ID\u-cs505'';伙计,工作得很好,我感谢你。它太短了,没有一点解释。请在您的答案上添加更多评论,使其成为完整的答案。