任何人都可以帮我修复错误吗?我仍然是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;
答案 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
这些只是一些例子。我们只是猜测你想要实现的目标。