[英]How can I create and pass a variable to another query?
UPDATE uye SET bakiye=bakiye+100 WHERE ID IN
(SELECT uye FROM kupon WHERE ID IN
( select c.kupon from kuponbahis c
join bahis b on b.sonuc = c.secim and b.ID = c.bahis
group by c.kupon
having sum(c.bahis = 24) > 0 and count(*) = (SELECT COUNT(*) FROM kuponbahis WHERE kupon = c.kupon)))
This query works but instead of "100" i want to change it with inside variables like; 此查询有效,但我想用内部变量(例如“ 100”)来更改它;
UPDATE uye SET bakiye=bakiye+VARIABLE WHERE ID IN
(SELECT uye, VARIABLE FROM kupon WHERE ID IN
( select c.kupon from kuponbahis c
join bahis b on b.sonuc = c.secim and b.ID = c.bahis
group by c.kupon
I can do it with a PHP code, but i want to put all the process to SQL directly. 我可以用PHP代码完成此操作,但是我想将所有过程直接放在SQL中。
(Note: Yes, my desired variable is inside of kupon table) (注意:是的,我想要的变量在kupon表中)
I suspect you don't want a variable . 我怀疑你不需要变量 。 You want a column from the subquery. 您需要子查询中的列。 In that case, use a JOIN
: 在这种情况下,请使用JOIN
:
UPDATE uye JOIN
(SELECT k.*
FROM kupon k
WHERE k.ID IN (select c.kupon
from kuponbahis c join
bahis b
on b.sonuc = c.secim and b.ID = c.bahis
group by c.kupon
having sum(c.bahis = 24) > 0 and
count(*) = (SELECT COUNT(*) FROM kuponbahis WHERE kupon = c.kupon)
)
) k
ON k.eye = uye.id
SET bakiye=bakiye + k.VARIABLE;
if you're trying to use stored procedure, you can declare and use variables: 如果您尝试使用存储过程,则可以声明和使用变量:
CREATE PROCEDURE setBakiye
(
bakiyeEkle INT
)
BEGIN
UPDATE uye SET bakiye=bakiye+bakiyeEkle WHERE ID IN
(SELECT uye FROM kupon WHERE ID IN
( select c.kupon from kuponbahis c
join bahis b on b.sonuc = c.secim and b.ID = c.bahis
group by c.kupon
having sum(c.bahis = 24) > 0 and count(*) = (SELECT COUNT(*) FROM kuponbahis WHERE kupon = c.kupon)))
END;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.