MySQL数据库(3)----设置和使用自定义变量
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)