Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL:Ustaw zmienną użytkownika z wyniku zapytania

Tak, ale musisz przenieść przypisanie zmiennej do zapytania:

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

Przypadek testowy:

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

Wynik:

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)

Zauważ, że dla SET , albo = lub := może być używany jako operator przypisania. Jednak w innych instrukcjach operatorem przypisania musi być := a nie = ponieważ = jest traktowany jako operator porównania w instrukcjach innych niż SET.

AKTUALIZACJA:

W związku z poniższymi komentarzami możesz również wykonać następujące czynności:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. różnica między kluczem podstawowym a kluczem unikalnym

  2. MySQL now() zmienia strefę czasową

  3. Konwersja numeru epoki na datę czytelną dla człowieka w mysql

  4. Jaka jest korzyść z zerofill w MySQL?

  5. CodeIgniter - Pogrupuj według zamówienia, nie działając zgodnie z oczekiwaniami