mysql:选择查询'当案例'或者使用' if else'获得多列

时间:2018-03-12 14:54:30

标签: mysql

我需要在几个条件满足时更新几列。我应该在这里使用哪一个? CASEIF-ELSE

需要做这样的事情,不确定使用哪一个。 但在这两种情况下,我都会看到错误"无法返回多列":

IF colZ not like "%abc%" from table1
THEN
  Update table2 set colA = "A" and colB = "B"  
ELSE
  DONT DO ANYTHING(but should tel didnt do anything)
END

IF colZ not like "%abc%" from table1
THEN
  get t2.col1,t2.col2,t2.col3,t3.col1,t3.col2 from table2 t2, table3 t3 
END

1 个答案:

答案 0 :(得分:0)

我认为正确的方法是使用IF语句:

IF (SELECT COUNT(*) FROM Table1 WHERE ColZ NOT LIKE '%abc%') > 0 THEN
    UPDATE Table2 SET ColA = 'A' AND ColB = 'B';
END IF;

这样,如果Table1中的至少一行满足NOT LIKE条件,则将执行UPDATE语句。但请注意,如果您使用UPDATE SET而不使用WHERE,则表2中的所有行都会受到影响。

请注意,IF语句只能在存储的程序中使用,请参阅https://dev.mysql.com/doc/refman/5.7/en/if.html