• mysql 用户自定义变量


    SQL中可以用变量来操作值、那么问题就来了、mysql中怎么定义一个变量呢?

    一、定义变量

      1、定义变量的语法:

    set @var_name=expr [,@var_name=expr] ...

      2、定义一个变量varName

    mysql> set @varName='hello world';
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> select @varName;
    +-------------+
    | @varName    |
    +-------------+
    | hello world |
    +-------------+
    1 row in set (0.00 sec)

      3、浪一把(最好不要太浪,不然受伤的只是自己)

    set @var-name='hello world';
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-name='hello world'' at line 1

      由于"-"号这个字符中sql中是用特殊意义的、所以不能这样搞;我们最希望的是解释器把var-name看成一个整体;所以我们要用引号把它们引起来

    mysql> set @`var-name`='hello world';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> select @`var-name`;
    +-------------+
    | @`var-name` |
    +-------------+
    | hello world |
    +-------------+
    
    -- 作人哪最好不要太浪、伤的是自己

      4、除了set 之外还有什么方式可以给一个变量赋值吗?在这方面我只见过select 有这个能力了

    select @varCount:=count(*) from t;
     -- 注意这个时候不能用 "="号了 这个时候只能用":=" 来赋值

      看起来select 在这方面也还是比较好用的呀!  大兄弟、我根你讲呀! select 赋值是有坑的,由于select 中各个赋值表达式的执行

      顺序是并行的;所以你不知道哪个赋值表达式先执行 如:

    select @varName:=100,@varName:=@varName+1,@varName:=@varName+2;
    +---------------+----------------------+----------------------+
    | @varName:=100 | @varName:=@varName+1 | @varName:=@varName+2 |
    +---------------+----------------------+----------------------+
    |           100 |                  101 |                  103 |
    +---------------+----------------------+----------------------+
    
    -- 就算这个结果看起来是你想要的,你也不能这么写,因为它不能保证每次的结果都是这样的
    -- 这样你代码的执行结果就靠运气了

    二、说了这么多,那么一个变量可以接受哪些类型的值呢?

      1、integer, decimal, floating-point, binary or nonbinary string, or NULL

    ----

  • 相关阅读:
    #研发中间件介绍#定时任务调度与管理JobCenter
    分享一个分布式定时任务系统 ( python)
    APScheduler + Gearman 构建分布式定时任务调度-std1984-ITPUB博客
    分布式缓存的一起问题 – 后端技术 by Tim Yang
    新兵训练营系列课程——Feed架构介绍
    Mysql分库分表方案
    可扩展性设计之数据切分
    你的数据库数据量上亿,为了提高效率,要分库还是分表?具体怎么做
    58同城mysql分库分表实践-沈剑
    可动态扩展的分库分表策略浅谈
  • 原文地址:https://www.cnblogs.com/JiangLe/p/6896329.html
Copyright © 2020-2023  润新知