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

    ----

  • 相关阅读:
    SVG ViewBox
    svg中改变class调用的线条颜色
    SVG 箭头线绘制
    Spring3中的mvc:interceptors标签配置拦截器
    MyBatis入门学习
    MyBatis 配置sql语句输出
    使用iBATIS3.0完成增删改查
    iBatis简单入门教程
    SpringMVC常用注解,返回方式,路径匹配形式,验证
    springMVC 返回类型选择 以及 SpringMVC中model,modelMap.request,session取值顺序
  • 原文地址:https://www.cnblogs.com/JiangLe/p/6896329.html
Copyright © 2011-2022 走看看