Mysql 如果表不为NULL,则将表值更新为1

Mysql 如果表不为NULL,则将表值更新为1,mysql,null,Mysql,Null,我有一个包含很多字段的表格,我想总结一下数据的“完整性”。为此,我计划将更新写入汇总表 我的问题如下: Table1 (the data table) DataID Data1 Data2 Table2 (the summary table) DataID Data1 (NULL YES or NO - 0 or 1) Data2 (NULL YES or NO - 0 or 1) 基本上,我想对Table2运行一个更新查询,该查询匹配DATAID,然后将标志更新为1(如果不为NULL)和0

我有一个包含很多字段的表格,我想总结一下数据的“完整性”。为此,我计划将更新写入汇总表

我的问题如下:

Table1 (the data table)
DataID
Data1
Data2

Table2 (the summary table)
DataID
Data1 (NULL YES or NO - 0 or 1)
Data2 (NULL YES or NO - 0 or 1)
基本上,我想对Table2运行一个更新查询,该查询匹配DATAID,然后将标志更新为1(如果不为NULL)和0(如果为NULL)

我知道这是相当基本的,但我仍在学习SQL,所以请耐心点:)

试试这个:

UPDATE  
 table2 t2, table1 t1  
SET  
 t2.Data1 = IF( t1.Data1 is null, 0, 1 ),  
 t2.Data2 = IF( t1.Data2 is null, 0, 1 )  
WHERE  
 t2.DataID=? and t1.DataID=t2.DataID;
使用所需的
DataID
值设置
查询参数。

尝试以下操作:

UPDATE  
 table2 t2, table1 t1  
SET  
 t2.Data1 = IF( t1.Data1 is null, 0, 1 ),  
 t2.Data2 = IF( t1.Data2 is null, 0, 1 )  
WHERE  
 t2.DataID=? and t1.DataID=t2.DataID;
UPDATE
    table2 a
INNER JOIN
    table1 b ON a.dataID = b.dataID
SET
    a.data1 = b.data1 IS NOT NULL,
    a.data2 = b.data2 IS NOT NULL
WHERE
    a.dataID = ?

设置
查询参数和所需的
数据ID
值。

更新匹配百分比t2,匹配表t1设置t2.Crowd=IF(t1.considers为null,0,1),其中t1.Serial\u No=t2.MATCHID
1064-您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第行“WHERE t1.Serial_No=t2.MATCHID”附近要使用的正确语法5@AndySutton发现并更正了打字错误。where子句前面不应该有逗号。
updatematch\u Percentage t2,Match\u Tables t1 SET t2.Crowd=IF(t1.considers为null,0,1),其中t1.Serial\u No=t2.MATCHID
#1064-您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第行“WHERE t1.Serial_No=t2.MATCHID”附近要使用的正确语法5@AndySutton发现并更正了打字错误。where子句前不应有逗号。是否检查表1中的data1和data2字段是否为空?是否检查表1中的data1和data2字段是否为空?
UPDATE
    table2 a
INNER JOIN
    table1 b ON a.dataID = b.dataID
SET
    a.data1 = b.data1 IS NOT NULL,
    a.data2 = b.data2 IS NOT NULL
WHERE
    a.dataID = ?