zoukankan      html  css  js  c++  java
  • 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

    ----

  • 相关阅读:
    过滤的特殊字符
    iOS中正则表达式的基本使用方法
    sqlite3特殊的字符转义
    tableView的设置
    IOS中设置cell的背景view和选中时的背景view 、设置cell最右边的指示器(比如箭头文本标签)
    IOS中(类似于进度条哪种效果)MBProgressHUD的使用
    ISO中AFN的使用步骤
    IOS中用UIFont返回字体的行高、动态改变tableView中Cell的高度
    iso中第三方框架SDWebImage的使用步骤
    iso中自动伸缩属性
  • 原文地址:https://www.cnblogs.com/JiangLe/p/6896329.html
Copyright © 2011-2022 走看看