IF ... mySQL中的ELSE语句

F A

谁能帮我解决错误?我对MySQL还是很陌生。错误在if else语句中。

select idpersonal,fname,lname,city from fathi.personal where city='QS';
if (fname=A%) then
begin
select idorder,order_no,item_total from fathi.order;
else 
update fathi.order 
set item_total=0
where personal.idpersonal=order.idpersonal;
spencer7593

IF 在MySQL中不是有效的SQL语句。

这里有三个独立的语句,一个来自个人的SELECT语句,一个来自顺序的SELECT语句(返回表中的所有行),以及一个UPDATE语句,该语句具有一个谓词,该谓词引用了来自未知行源的列。

这是根据问题中所发布内容的一些SQL示例。

1)返回个人与city ='Q5'的所有行

SELECT p.idpersonal
     , p.fname
     , p.lname
     , p.city
  FROM fathi.personal p 
 WHERE p.city='QS';

2)返回订单中与city ='Q5'和fname以'A'开头的个人相关的所有行。(这仅返回来自个人的与订单相关的行。)

SELECT o.idorder
     , o.order_no
     , o.item_total
     , p.idpersonal
     , p.fname
     , p.lname
     , p.city
  FROM fathi.order o 
  JOIN fathi.personal p 
    ON p.idpersonal = o.idpersonal
   AND p.city = 'Q5'
   AND p.fname LIKE 'A%' ;

3)修改表“ order”的内容,以将与city ='Q5'的personal相关的所有行的item_total设置为零,并且fname的名称不以'A'开头

UPDATE order o
  JOIN personal p 
    ON p.idpersonal = o.idpersonal
   AND p.city = 'Q5'
   AND (p.fname IS NULL OR p.fname NOT LIKE 'A%') ;
   SET o.item_total=0

这些仅是示例。我们只是在猜测您要实现的目标。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章