如果表IS NOT NULL,则将表值更新为1

时间:2012-06-16 15:45:19

标签: 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匹配,然后如果NOT NULL则将标志更新为1,如果为NULL则将标志更新为

我知道这是相当基础的,但我还在学习SQL,所以请善待:)

2 个答案:

答案 0 :(得分:1)

试试这个:

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值。

答案 1 :(得分:0)

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 = ?