当前位置: 首页 > 面试题库 >

MySQL:根据查询结果设置用户变量

凌展
2023-03-14
问题内容

是否可以根据MySQL中的查询结果设置用户变量?

我想要实现的是这样的事情(我们可以假设USERGROUP都是唯一的):

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

请注意,我知道有可能,但我不希望使用嵌套查询。


问题答案:

是的,但是您需要将变量分配移至查询中:

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;


 类似资料:
  • 问题内容: 创建保存的过程时,可以创建一些变量吗?例如: 问题:但是如何从查询中设置变量结果,即如何进行如下设置: ? 问题答案: 有多种方法可以做到这一点。 您可以使用子查询: (就像您的原始文章一样,只需在查询周围添加括号) 或使用SELECT INTO语法分配多个值: 子查询语法稍微快一些(我不知道为什么),但是只能分配一个值。select into语法允许您一次设置多个值,因此,如果需要从

  • 问题内容: 有什么办法可以将mysql结果存储在php变量中?谢谢 然后我要从查询中打印选定的用户ID。 问题答案: 当然有。签出,以及是否使用MySQL。 PHP手册中的 示例:

  • 本文向大家介绍MySql设置指定用户数据库查看查询权限,包括了MySql设置指定用户数据库查看查询权限的使用技巧和注意事项,需要的朋友参考一下 一、新建用户: 1、执行sql语句新建(推荐): 2、使用工具新建: 二、设置权限 1、配置数据库以及数据表(记得保存): 2、设置【服务器权限】全部为撤销 3、刷新数据库权限: MariaDB [(none)]> FLUSH PRIVILEGES;Que

  • 我试图根据仪表板变量值在图形面板上显示/隐藏查询。 动机 在同一个图形面板(用于显示多个主机)上,我有两个查询: 和: 其中是一个计数器。 第一个是一个通常的比率,它更适合显示趋势,另一个更复杂一些,但显示所有选择。当然,我想为图表制作一个面板,但也有一些开关,如趋势/选择来分析两者。我引入了一个带有自定义值的grafana dashboard变量,但我不明白如何使用它来隐藏或显示特定的查询。 此

  • 主要内容:单字段排序,多字段排序通过条件查询语句可以查询到符合用户需求的数据,但是查询到的数据一般都是按照数据最初被添加到表中的顺序来显示。为了使查询结果的顺序满足用户的要求,MySQL 提供了 ORDER BY 关键字来对查询结果进行排序。 在实际应用中经常需要对查询结果进行排序,比如,在网上购物时,可以将商品按照价格进行排序;在医院的挂号系统中,可以按照挂号的先后顺序进行排序等。 ORDER BY 关键字主要用来将查询结果中

  • 我正在对一个小表执行一个简单的查询 系统表只有三列(Id、Name、Progress)和1300行。 我获取数据的代码是: 这段代码在JTable中显示日期大约需要15秒,而如果在phpmyadmin中执行查询,则需要不到1秒。