mysql查询结果添加一列id实现方法
mysql查询结果添加一列id实现方法
mysql中没有存在类似于Oracle中的分析函数,所以对于mysql中应该如何添加一列id值具体执行步骤如下:
1.建立数据库语句
例如我们先建立一个stu表,两个字段name和sex,我们将要在查询这张表的时候,添加上id。
建表语句如下:
CREATE TABLE `stu` (
`name` varchar(255) NOT NULL,
`sex` varchar(255) DEFAULT NULL,
PRIMARY KEY (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.插入数据
接下来我们插入一部分数据,如下:
INSERT INTO `stu` VALUES ('dhfj', '男');
INSERT INTO `stu` VALUES ('fjd', '男');
INSERT INTO `stu` VALUES ('ns', '女');
INSERT INTO `stu` VALUES ('uok', '女');
INSERT INTO `stu` VALUES ('sds', '男');
3.执行sql语句
首先我们先来看一下,正常的查询结果如下:
select * from stu;
在查询语句中添加一个变量的应用,使用如下语句即可实现增加一列id
SELECT
(@id:=@id+1) as id,
stu.*
FROM
stu,
(SELECT @id:=0 )as id_temp
4.存在问题
使用此种方法生成的id主要取决于原表中的数据量有多少,就会生成多少数量的id,如果使用排序,分页,id都会从0开始,使用起来没有Oracle中的分析函数方便,但是可以解决一部分的问题。