前言
在表格显示等众多场景中,通常需要显示数据的序号,可强调数据的顺序性。
添加简单数字行号列
-- 1.建表test (工作中id 99.99%不用自增)
CREATE TABLE `test` (
`id` int PRIMARY KEY auto_increment,
`text` VARCHAR(30) DEFAULT NULL
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;
-- 2.添加4条数据
INSERT test(text) VALUES ('数据1'),('数据2'),('数据3'),('数据4')
-- 3.添加行号
SELECT @rownum:=@rownum+1 as row_num, t.*
from (
-- 需要添加行的表
select * from test
) t, (select @rownum:=0) r;
row_num | id | text |
---|---|---|
1 | 1 | 数据1 |
2 | 2 | 数据2 |
3 | 3 | 数据3 |
4 | 4 | 数据4 |
添加行号列 并前后拼接其他描述文字
使用concat字符串拼接函数 CONCAT(str1,str2,...)
SELECT CONCAT('no.',@rownum:=@rownum+1) as row_num, t.*
from (
-- 需要添加行的表
select * from test
) t, (select @rownum:=0) r;
row_num | id | text |
---|---|---|
no.1 | 1 | 数据1 |
no.2 | 2 | 数据2 |
no.3 | 3 | 数据3 |
no.4 | 4 | 数据4 |
了解MySQL自定义变量
增强SQL的作用,为数据表没有的数据提供辅助作用
作用域:自定义变量只对当前会话(连接)有效
1. 定义变量
--方法一
SET @自定义变量名=值;
SET @自定义变量名:=值;
--方法二 定义并且查询变量
SELECT @自定义变量名:=值;
2. 更新变量值
--方式一:
SET @自定义变量名=值;
SET @自定义变量名:=值;
SELECT @自定义变量名:=值;
--方式二:
SELECT 字段名 INTO @变量名 FROM 表
3. 查看\使用 变量值
SELECT @自定义变量名;
4.例子
--定义变量
SET @my_var:='a';
--更新变量
SELECT `text` INTO @my_var FROM test WHERE id=1;
--查询变量
SELECT @my_var;
> @my_var
数据1