MySQL中“:=”和“=”的区别浅析

=

只有在set和update时才是和:=一样,赋值的作用,其它都是等于的作用。鉴于此,用变量实现行号时,必须用:=。

:=

不只在set和update时时赋值的作用,在select也是赋值的作用。

  下面是:=和=的在select时作用对比

sql

set @num = 0;
SELECT @num := @num+1 AS rowno, nc as nickname from table_user;

结果

sql

set @num = 0;
SELECT @num = @num+1 AS rowno, nc as nickname from table_user;

结果

sql

set @num = 0;
SELECT @num = @num AS rowno, nc as nickname from table_user;

结果

参考文献:https://www.jb51.net/article/167218.htm

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。

(0)

相关推荐

  • MYSQL where 1=1判定中的作用说明

    于是在网上 查了查,在这里就浅谈一下: 1=1 永真, 1<>1 永假. 1<>1 的用处: 用于只取结构不取数据的场合 例如: create table table_temp tablespace tbs_temp as select * from table_ori where 1<>1 建成一个与table_ori 结构相同的表table_temp,但是不要table_ori 里的数据.(除了表结构,其它结 构也同理) 1=1的用处 用于动态SQL 例如 lv_s

  • mysql sql_mode="" 的作用说明

    sql_mode="",即强制不设定MySql模式(如不作输入检测.错误提示.语法模式检查等)应该能提高性能,但有如下问题: 如果插入了不合适数据(错误类型或超常),mysql会将数据设为"最好的可能数据"而不报错,如: /数字 设为:0/可能最小值/可能最大值 /字符串 设为:空串/能够存储的最大容量字符串 /表达式 设为:返回一个可用值(1/0-null) 所以,解决办法是:所有列都要采用默认值,这对性能也好. mysql_mode的详细描述: 在mysql 5

  • MySql中特殊运算符的使用方法总结

    前言 mysql中有4类运算符,它们是: 算术运算符 比较运算符 逻辑运算符 位操作运算符 这个大家应该都比较熟悉,但本文给大家总结介绍的关于MySql中特殊运算符的相关内容,下面话不多说了,来一起看看详细的介绍吧 1. <=> 安全比较运算符 mysql中任何与NULL做比较都会是NULL,常用来做判断是否是NULL. 当然我也可以采用IS NULL 2. := 赋值的作用 := 和 = 运算符都有赋值的作用,在大部分场景下并无区别,但 := 更为全场景些. = 只有在 set 和updat

  • 讲解MySQL中<=>操作符的用法

    问题 : 我在看以前的一个开发者的代码时看到 WHERE p.name <=> NULL 在这个查询语句中 <=>符号是什么意思啊?是不是和 =号是一样啊?还是一个语法错误啊?但是没有显示任何错误或者异常.我已经知道了mysql中的 <> = !=等符号.      最佳回答 : 和=号的相同点 像常规的=运算符一样,两个值进行比较,结果是0(不等于)或1(相等);换句话说:'A'<=>'B'得0和'a'<=>'a'得1. 2.和=号的不同点 和

  • 图文介绍mysql中:=和=的区别

    :=和=的区别 = 只有在set和update时才是和:=一样,赋值的作用,其它都是等于的作用.鉴于此,用变量实现行号时,必须用:= := 不只在set和update时时赋值的作用,在select也是赋值的作用. 如果明白了=和:=的区别,那么也就理解了下边的现象. @num:=@num+1,:=是赋值的作用,所以,先执行@num+1,然后再赋值给@num,所以能正确实现行号的作用. @num=@num+1,此时=是等于的作用,@num不等于@num+1,所以始终返回0,如果改为@num=@nu

  • MySQL中“:=”和“=”的区别浅析

    = 只有在set和update时才是和:=一样,赋值的作用,其它都是等于的作用.鉴于此,用变量实现行号时,必须用:=. := 不只在set和update时时赋值的作用,在select也是赋值的作用.   下面是:=和=的在select时作用对比 sql set @num = 0; SELECT @num := @num+1 AS rowno, nc as nickname from table_user; 结果 sql set @num = 0; SELECT @num = @num+1 AS

  • mysql中#{}和${}的区别详解

    #{}会将传入的数据当成一个字符串,会对自动传入的数据加一个双引号 order by #{userId}   这里假如userId = 111,那么解析成sql时会变成 order by "111"这里如果userId = idStr,那么解析成sql时会变成 order by "idStr" ${}会将传入的数据直接显示生成在sql中 order by #{userId}  这里假如userId = 111,那么解析成sql时会变成 order by 111这里如

  • MySQL去重中distinct和group by的区别浅析

    今天在写业务需要对数据库重复字段进行去重时,因为是去重,首先想到的是distinct关键字.于是一小时过去了....(菜鸟一个,大家轻点骂) 我把问题的过程用sql语句演示给大家演示一下 首先我使用的是mybatis-plus,代码如下 QueryWrapper<ProjectCompany> wrapper = new QueryWrapper<>(); wrapper.select("DISTINCT project_id,company_id,company_nam

  • Mysql中undo、redo与binlog的区别浅析

    目录 前言 [undo log] [redo log] [binlog] 总结 前言 MySQL中有六种日志文件,分别是:重做日志(redo log).回滚日志(undo log).二进制日志(binlog).错误日志(errorlog).慢查询日志(slow query log).一般查询日志(general log),中继日志(relay log). 其中重做日志和回滚日志与事务操作息息相关,二进制日志也与事务操作有一定的关系,这三种日志,对理解MySQL中的事务操作有着重要的意义.   与

  • MySQL中distinct和group by去重效率区别浅析

    目录 一.distinct 二.group by 三.distinct 和 group by 比较 总结 一.distinct distinct的作用 在mysql中,distinct关键字的主要作用就是对数据库表中一个或者多个字段重复的数据进行过滤,只返回其中的一条数据给用户,distinct只可以在select中使用 distinct的原理 distinct进行去重的主要原理是通过先对要进行去重的数据进行分组操作,然后从分组后的每组数据中去一条返回给客户端,在这个分组的过程可能会出现两种不同

  • MySQL中索引与视图的用法与区别详解

    前言 本文主要给大家介绍了关于MySQL中索引与视图的使用与区别的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 索引 一.概述 所有的Mysql列类型都可以被索引. mysql支持BTREE索引.HASH索引.前缀索引.全文本索引(FULLTEXT)[只有MyISAM引擎支持,且仅限于char,varchar,text列].空间列索引[只有MyISAM引擎支持,且索引的字段必须非空],但不支持函数索引. MyISAM和InnoDB存储引擎的表默认创建BTREE索引,

  • MySQL中count(*)、count(1)和count(col)的区别汇总

    前言 count函数是用来统计表中或数组中记录的一个函数,count(*) 它返回检索行的数目, 不论其是否包含 NULL值.最近感觉大家都在讨论count的区别,那么我也写下吧:欢迎留言讨论,话不多说了,来一起看看详细的介绍吧. 1.表结构: dba_jingjing@3306>[rds_test]>CREATE TABLE `test_count` ( -> `c1` varchar(10) DEFAULT NULL, -> `c2` varchar(10) DEFAULT N

  • MySQL中create table as 与like的区别分析

    本文分析了MySQL中create table as 与like的区别.分享给大家供大家参考,具体如下: 对于mysql的复制相同表结构方法,有create table as 和create table like 两种,区别是什么呢? 复制代码 代码如下: create table t2 as select * from t1 where 1=2; 或者 复制代码 代码如下: limit 0; as创建出来的t2表(新表)缺少t1表(源表)的索引信息,只有表结构相同,没有索引. 复制代码 代码如

  • Mysql中FIND_IN_SET()和IN区别简析

    前段时间项目中使用到Mysql的FIND_IN_SET函数,感觉挺好用的.过一段时间,老大找到我说,这个需要改为IN,哈哈,只能改了,原因会在下面分析到! 弄个测试表来说说两者的区别,测试数据直接在问答区copy一份,能说明问题就行,哈哈,如果侵犯您的版权还请见谅,互联网吗,就需要分享! 测试代码: CREATE TABLE `test` ( `id` int(8) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `list` var

随机推荐