SORU
8 EKİM 2010, Cuma


MySQL: sorgu sonucunda kullanıcı değişkeni

Bir kullanıcı MySQL bir sorgu sonucuna göre değişken ayarlamak mümkün mü?

Elde etmek istediğim şey, bu (USER GROUP iki benzersiz olduğunu varsayabiliriz) gibi bir şey:

set @user = 123456;
set @group = select GROUP from USER where User = @user;
select * from USER where GROUP = @group;

Lütfen mümkün olduğunu biliyorum unutmayın ama iç içe Sorgu ile bunu yapmak istemiyorum.

CEVAP
8 EKİM 2010, Cuma


Evet, ama sorgu içine değişken atama taşımak gerekir:

SET @user := 123456;
SELECT @group := `group` FROM user WHERE user = @user;
SELECT * FROM user WHERE `group` = @group;

Case Test:

CREATE TABLE user (`user` int, `group` int);
INSERT INTO user VALUES (123456, 5);
INSERT INTO user VALUES (111111, 5);

Sonuç:

SET @user := 123456;
SELECT @group := `group` FROM user WHERE user = @user;
SELECT * FROM user WHERE `group` = @group;

 -------- ------- 
| user   | group |
 -------- ------- 
| 123456 |     5 |
| 111111 |     5 |
 -------- ------- 
2 rows in set (0.00 sec)

SET ya da = := atama operatörü olarak kullanılır. Diğer tablolar içinde ancak, atama operatörü = non-SET tablolarda karşılaştırma operatörü olarak kabul edilir çünkü := = olmalıdır.


GÜNCELLEME:

Aşağıda yorumlara ek olarak, aynı zamanda aşağıdakileri yapabilirsiniz:

SET @user := 123456;
SELECT `group` FROM user LIMIT 1 INTO @group; 
SELECT * FROM user WHERE `group` = @group;

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • dope2111

    dope2111

    29 HAZİRAN 2009
  • Jonathan D.

    Jonathan D.

    3 Kasım 2006
  • Neil Cicierega

    Neil Ciciere

    22 Mart 2006