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中的分析函數方便,但是可以解決一部分的問題。