2016-09-15 45 views
0
START TRANSACTION; 
SELECT @v:=Clientno FROM A WHERE Case_No = '2000'; 
IF @V = ' ' THEN 
    UPDATE B SET Status = 'Ongoing' WHERE C_No = '3000'; 
COMMIT; 

在上面的MySQL TRANSACTION声明,我想从table A@v如果@v EXISTS(即如果有一个值/一行Case_No = '2000')那么我想更新table B中的一行从'Status''Ongoing'更新一个MySQL行中的一个表,这取决于一个值在另一个表

上面的语法不起作用。

什么是正确的MySQL语法做TRANSACTION以上的工作?

表结构如下:表A的

结构:A(Case_No,Clientno)表B的

结构:B(C_No,状态)

回答

0

你问题不明确。

猜测tableB.C_no是tableA.ClientNo

update 
    tableB 
set Status = 'Ongoing' 
where C_No = (select Clientno from tableA where Case_No = 2000) 

如果它不参考表的参考,然后尝试

update 
    tableB 
set Status = 'Ongoing' 
where C_No = 3000 
and (select count(Clientno) from tableA where Case_No = 2000) > 0 
0

注:你提的问题不够清楚。基于我对问题的理解,我回答了这个问题

您也可以使用update with inner join。例如:

update b inner join a on A.Case_No = B.C_No set status='on_going' where A.Case_No = 2000 and B.C_No = 3000;

该查询将仅选择从A其具有B的条目的那些行。所以你不必担心A是否有这一行。

相关问题