Php mysql只更新空列
假设我在一个表中有4列,我有下面3列的数据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的数据相同或不同)只需
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查询中,如果col1和col2的值不变,则无需重新分配这些值
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'';伙计,工作得很好,我感谢你。它太短了,没有一点解释。请在您的答案上添加更多评论,使其成为完整的答案。