MySQl查询更新如果数据是空的或空的,带有CASE语句

时间:2016-05-18 06:13:07

标签: mysql sql case

Iam查询了一下。当我编辑表A中的数据时,需要检查表B中是否存在相同的数据,如果表B中存在数据,则忽略更新,如果数据为空或空,则表A中的数据需要表B中的更新。通过以下查询,我几乎实现了它,但问题是当表B中存在数据时,它只是删除数据。当数据存在时,它实际上应该忽略它。我猜这个案例陈述的一个小问题。请帮我解决这个问题。

$strSQLInsert2 = "UPDATE Table B 
 SET 
`tender_intendername` = CASE WHEN `tender_intendername`='' or `tender_intendername` IS NULL 
THEN '".$values["intendername1"]."' END, 
`no_of_participants` = CASE WHEN `no_of_participants`='' Or `no_of_participants` IS NULL 
THEN '".$values["no_of_participants"]."' END
WHERE tender_id=" . $values["tender_id"];

2 个答案:

答案 0 :(得分:0)

我解决了。但需要编写两个查询来实现结果。

var myArray: NSMutableArray = [["edriverId":"1234","token":"anytokenid"]]

print(myArray)

var parsedata:String = myArray.objectAtIndex(0).valueForKey("token")as!String

print(parsedata)

答案 1 :(得分:0)

您必须在ELSE表达式中添加CASE

UPDATE Table B
SET `tender_intendername` = CASE 
                               WHEN `tender_intendername`='' or 
                                    `tender_intendername` IS NULL
                                  THEN '".$values["intendername1"]."' 
                               ELSE `tender_intendername` END,
    `no_of_participants` = CASE 
                              WHEN `no_of_participants`='' Or 
                                   `no_of_participants` IS NULL 
                                 THEN '".$values["no_of_participants"]."' 
                              ELSE  `no_of_participants` END
WHERE tender_id=" . $values["tender_id"];

ELSE语句设置每个字段等于它自己,因此它保证当字段不为空而不是NULL时字段不会改变。