您的位置:首页 > 数据库 > MySQL

MySQL数据库(3)----设置和使用自定义变量

2016-07-17 19:31 483 查看

  MySQL支持定义自己的变量。这些变量可以被设置为查询结果,这使我们可以方便地把一些值存储起来供今后查询使用。

mysql> SELECT @HisName:= name FROM student WHERE student_id=3;
+-----------------+
| @HisName:= name |
+-----------------+
| Lily            |
+-----------------+
1 row in set (0.01 sec)

mysql> SELECT * FROM student WHERE name=@HisName;
+------+-----+------------+
| name | sex | student_id |
+------+-----+------------+
| Lily | F   |          3 |
+------+-----+------------+
1 row in set (0.00 sec)

  

  自定义变量的语法为"@变量名" 。在SELECT 语句里,赋值语法是形如 "@变量名:=值" 的表达式。因此,上面的第一个查询主要负责把 student_id = 3 的学生的名字查找出来,并把它赋值给一个名为 @HisName 的变量。这条SELECT 语句的查询结果仍会被显示出来;而将查询结果赋值给变量的过程并不会阻碍该查询的输出显示。第二个查询仍会引用该变量,并在 student 表里查找 name 值等于该变量的那些行。

  也可以使用 SET 语句来对变量进行赋值。此时,"=" 和 ":=" 都可以用作赋值运算符:

mysql> SET @today=CURDATE();
Query OK, 0 rows affected (0.00 sec)

mysql> SET @one_week_ago:=DATE_SUB(@today,INTERVAL 7 DAY);
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @today,@one_week_ago;
+------------+---------------+
| @today     | @one_week_ago |
+------------+---------------+
| 2016-07-17 | 2016-07-10    |
+------------+---------------+
1 row in set (0.00 sec)

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: