在赋值和读取变量的时候可能在查询的不同阶段。

由于where和select在查询的不同阶段执行,所以看到查询到两条记录,这并不符合预期。

set @rownum:=0;
select actor_id,@rownum:=@rownum+1 as cnt from actor where @rownum<=1;

当引入了order by之后,会打印全部结果,这是因为order by 引入了文件排序,而where条件实在文件排序之前取值的。

加上order by之后的结果是返回了表中所有的记录:

set @rownum:=0;
select actor_id,@rownum:=@rownum+1 as cnt from actor where @rownum<=1 order by first_name;

解决这个问题的关键在于让变量的赋值和取值发生在执行查询的同一阶段。

最终解决方案:

set @rownum:=0;
select actor_id,@rownum:=@rownum+1 as cnt from actor where (@rownum:=@rownum+1)<=1;

MySQL使用用户变量需确定取值的顺序相关推荐

  1. MySQL对用户变量、系统变量、局部变量详解

    目录 1 变量分类 1.1 用户变量 1.1.1 用户变量定义 1.1.2 用户变量操作 1.2 系统变量 1.2.1 系统变量定义 1.2.2 系统全局变量 1.2.3 系统会话变量 1.3 局部变 ...

  2. MySQL的用户变量和系统变量

    MySQL中的变量分为用户变量与系统变量. 一.用户变量 用户变量是指与数据库的一次连接中声明的变量,在连接断开后就会消失. 1.变量命名 变量名必须以@开头,例如@name 2.声明及赋值 声明与赋 ...

  3. MySQL使用用户变量优化先更新后查询

    -- 使用变量@now存储 update t1 set t_date=NOW() where id=1 and @now=NOW(); -- 使用@now select @now; 要使用上一条sql ...

  4. mysql tinyint 1 范围_mysql tinyint 取值范围浅析

    Tinyint占用1字节的存储空间,即8位(bit).那么Tinyint的取值范围怎么来的呢?我们先看无符号的情况.无符号的最小值即全部8位(bit)都为0,换算成十进制就是0,所以无符号的Tinyi ...

  5. mysql创建用户变量_MySQL创建一个变量的用户?

    您可以为此使用动态查询.首先为用户名设置变量名,为密码设置变量名.语法如下-SET @anyVariableName='yourUserName'; SET @anyVariableName1='yo ...

  6. mysql 删除用户变量_MySql安装与MySQL添加用户、删除用户与授权

    MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 1.1 登录MYSQL: @>mysql -u root -p @&g ...

  7. mysql查询语句 变量_mysql查询语句中用户变量的使用

    先上代码吧 SELECT `notice`.`id` , `notice`.`fid` , `notice`.`has_read` , `notice`.`notice_time` , `notice ...

  8. MySQL数据库变量_数据库参数_MySQL变量_系统变量_用户变量

    文章目录 MySQL 变量分类 系统变量 查看系统变量 设置系统变量 如何通过配置文件来设置变量值 通过命令行选项来设置变量值 动态设置全局级的系统变量 设置静态的系统变量 设置会话级的系统变量 引用 ...

  9. tidyr | 变量取值组合、缺失值处理、变量分列与合并

    关于tidyr工具包已经有三篇推文了,详情可查看本号推文索引.本篇来介绍该包剩余的其他函数. tidyr工具包的功能是使数据更加整洁,多配合dplyr工具包进行数据预处理,其包含的函数并不多,除已经介 ...

最新文章

  1. 【文本分类】基于改进CHI和PCA的文本特征选择
  2. boost::timer
  3. 利用Java上手微服务架构
  4. 推荐30个用于微服务的顶级工具
  5. great sentences for university sentences
  6. springboot创建parent_理解spring-boot-starter-parent
  7. CNNIC公告称半个月已处理不良网站域名万例
  8. BAT程序员手把手带你学算法-数组篇(理论知识剖析+5道经典面试题目)
  9. javascript的constructor属性介绍
  10. Linux命令——uptime
  11. Win11截图工具在哪里?
  12. linux文件名乱码删除,linux下删除文件名乱码文件
  13. 【网络攻防课实验】一:本地系统密码破解
  14. FAT32与NTFS区别
  15. python里的点_Python里面这些点,据说80%的新手都会一脸懵逼
  16. Java 简易五子棋游戏的编写
  17. 基础算法(一)零基础学算法---总结大篇
  18. 苹果 微信发件 服务器,如何使用iPhone自带的邮件客户端管理企业邮箱?
  19. 用手机远程登录电脑,太高端了。。。。
  20. NFT宝典:你需要知道NFT的术语和定义

热门文章

  1. 【机器学习基础】一文读懂用于序列标注的条件随机场(CRF)模型
  2. 【机器学习基础】获取机器学习和深度学习的练习数据
  3. 震惊!这些喵星人竟然被集体包养!
  4. 0325互联网新闻 | 腾讯游戏发布“追梦计划”品牌;2018年中国物联网业务收入同比增长72.9%...
  5. 22:00直播|当加班男程序猿 被美女主播~ 捕到后...
  6. MJiOS底层笔记--KVO本质
  7. 北京阿里云ACE态势感知大屏体验黑客攻击与防御
  8. Python入门第三章--第一节:条件判断语句
  9. 双向多点路由重分布--如何防止路由环路以及次优路径
  10. [Office 2010 易宝典]怎样直接将Office文档保存为PDF格式?