IF ...在mySQL中的ELSE语句

时间:2014-09-09 01:12:57

标签: mysql

任何人都可以帮我修复错误吗?我仍然是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;

1 个答案:

答案 0 :(得分:2)

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

这里有三个单独的语句,一个来自个人的SELECT,一个来自order的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”的内容,将item_total设置为零,对于所有与person =`Q5'相关的行并且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

这些只是一些例子。我们只是猜测你想要实现的目标。