Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL:Задайте потребителска променлива от резултата от заявката

Да, но трябва да преместите присвояването на променлива в заявката:

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

Тестов случай:

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

Резултат:

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 , или = или := може да се използва като оператор на присвояване. В други изрази обаче операторът за присвояване трябва да бъде := а не = защото = се третира като оператор за сравнение в изрази, различни от SET.

АКТУАЛИЗИРАНЕ:

В допълнение към коментарите по-долу, можете да направите и следното:

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. Как да покажа грешка в MySQL в PHP за дълга заявка, която зависи от въведеното от потребителя?

  2. Как мога да вмъкна данни в MySQL база данни?

  3. Подредената входна стойност вмъква празен запис в mysql

  4. JSON_SET() – Вмъкване или актуализиране на стойности в JSON документ в MySQL

  5. Грешка в MySQL 1093 - Не може да се посочи целева таблица за актуализиране в клауза FROM