<small id='ktMPc'></small><noframes id='ktMPc'>

      <legend id='ktMPc'><style id='ktMPc'><dir id='ktMPc'><q id='ktMPc'></q></dir></style></legend>
        <bdo id='ktMPc'></bdo><ul id='ktMPc'></ul>

      <i id='ktMPc'><tr id='ktMPc'><dt id='ktMPc'><q id='ktMPc'><span id='ktMPc'><b id='ktMPc'><form id='ktMPc'><ins id='ktMPc'></ins><ul id='ktMPc'></ul><sub id='ktMPc'></sub></form><legend id='ktMPc'></legend><bdo id='ktMPc'><pre id='ktMPc'><center id='ktMPc'></center></pre></bdo></b><th id='ktMPc'></th></span></q></dt></tr></i><div id='ktMPc'><tfoot id='ktMPc'></tfoot><dl id='ktMPc'><fieldset id='ktMPc'></fieldset></dl></div>
      <tfoot id='ktMPc'></tfoot>

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

        MySQL: Set user variable from result of query(MySQL:根据查询结果设置用户变量)

          1. <i id='Fn8qP'><tr id='Fn8qP'><dt id='Fn8qP'><q id='Fn8qP'><span id='Fn8qP'><b id='Fn8qP'><form id='Fn8qP'><ins id='Fn8qP'></ins><ul id='Fn8qP'></ul><sub id='Fn8qP'></sub></form><legend id='Fn8qP'></legend><bdo id='Fn8qP'><pre id='Fn8qP'><center id='Fn8qP'></center></pre></bdo></b><th id='Fn8qP'></th></span></q></dt></tr></i><div id='Fn8qP'><tfoot id='Fn8qP'></tfoot><dl id='Fn8qP'><fieldset id='Fn8qP'></fieldset></dl></div>
              <tbody id='Fn8qP'></tbody>

            <small id='Fn8qP'></small><noframes id='Fn8qP'>

                <tfoot id='Fn8qP'></tfoot>
                  <bdo id='Fn8qP'></bdo><ul id='Fn8qP'></ul>
                • <legend id='Fn8qP'><style id='Fn8qP'><dir id='Fn8qP'><q id='Fn8qP'></q></dir></style></legend>
                  本文介绍了MySQL:根据查询结果设置用户变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

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

                  Is it possible to set an user variable based on the result of a query in MySQL?

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

                  What I want to achieve is something like this (we can assume that both USER and GROUP are unique):

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

                  请注意,我知道这是可能的,但我不希望使用嵌套查询来做到这一点.

                  Please note that I know it's possible but I do not wish to do this with nested queries.

                  推荐答案

                  可以,但是需要将变量赋值移到查询中:

                  Yes, but you need to move the variable assignment into the query:

                  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 语句中被视为比较运算符.

                  Note that for SET, either = or := can be used as the assignment operator. However inside other statements, the assignment operator must be := and not = because = is treated as a comparison operator in non-SET statements.

                  更新:

                  除了下面的评论,您还可以执行以下操作:

                  Further to comments below, you may also do the following:

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

                  这篇关于MySQL:根据查询结果设置用户变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  Bogus foreign key constraint fail(虚假外键约束失败)
                  how to get last insert id after insert query in codeigniter active record(如何在codeigniter活动记录中插入查询后获取最后一个插入ID)
                  Force InnoDB to recheck foreign keys on a table/tables?(强制 InnoDB 重新检查表/表上的外键?)
                  How to auto generate migrations with Sequelize CLI from Sequelize models?(如何使用 Sequelize CLI 从 Sequelize 模型自动生成迁移?)
                  Clear MySQL query cache without restarting server(无需重启服务器即可清除 MySQL 查询缓存)
                  ALTER TABLE to add a composite primary key(ALTER TABLE 添加复合主键)
                    <i id='NCK6f'><tr id='NCK6f'><dt id='NCK6f'><q id='NCK6f'><span id='NCK6f'><b id='NCK6f'><form id='NCK6f'><ins id='NCK6f'></ins><ul id='NCK6f'></ul><sub id='NCK6f'></sub></form><legend id='NCK6f'></legend><bdo id='NCK6f'><pre id='NCK6f'><center id='NCK6f'></center></pre></bdo></b><th id='NCK6f'></th></span></q></dt></tr></i><div id='NCK6f'><tfoot id='NCK6f'></tfoot><dl id='NCK6f'><fieldset id='NCK6f'></fieldset></dl></div>
                  1. <small id='NCK6f'></small><noframes id='NCK6f'>

                        <tbody id='NCK6f'></tbody>
                    • <legend id='NCK6f'><style id='NCK6f'><dir id='NCK6f'><q id='NCK6f'></q></dir></style></legend>

                            <bdo id='NCK6f'></bdo><ul id='NCK6f'></ul>
                            <tfoot id='NCK6f'></tfoot>