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
语句中,我想从@v
和if table A
获取@v EXISTS
(即如果{的值为/ {} {1}})然后我想将Case_No = '2000'
中的一行从table B
更新为'Status'
上面的语法不起作用。
执行上述'Ongoing'
工作的正确MySQL语法是什么?
表格结构如下:
表A的结构:A(Case_No,Clientno)
表B的结构:B(C_No,Status)
答案 0 :(得分: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
答案 1 :(得分:0)
注意:您的问题不够明确。我根据对问题的理解来回答这个问题
您还可以使用内部联接更新。例如:
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是否有该行。