在MySQL过程中添加用于编号的新列

在MySQL过程中添加用于编号的新列,mysql,procedure,Mysql,Procedure,我想在MySQL中创建一个存储过程,用行号而不是行的id显示表的数据。像这样: 我试过这个密码: CREATE DEFINER=`root`@`localhost` PROCEDURE `count_row`() BEGIN declare row_num INTEGER; declare result INTEGER; SELECT count(id) FROM engineers INTO row_num; SET result=0; WHILE(result<=row_num) D

我想在MySQL中创建一个存储过程,用行号而不是行的id显示表的数据。像这样:

我试过这个密码:

CREATE DEFINER=`root`@`localhost` PROCEDURE `count_row`()
BEGIN
declare row_num INTEGER;
declare result INTEGER;
SELECT count(id) FROM engineers INTO row_num;
SET result=0;
WHILE(result<=row_num)
DO
SELECT result=result+1, name, date FROM engineers ;
END WHILE;
END
CREATE DEFINER=`root`@`localhost` PROCEDURE `count_row`()
BEGIN
declare row_num INTEGER;
declare result INTEGER;
SELECT count(id) FROM engineers INTO row_num;
SET result=1;
WHILE(result<=row_num)
DO
SELECT result, name, date FROM engineers;
SET result = result +1;
END WHILE;
END
CREATE DEFINER=`root`@`localhost`过程`count\u row`()
开始
声明行数为整数;
声明结果整数;
从工程师中选择count(id)到row_num;
设置结果=0;
而(结果Try)


为简单起见,您可以使用PHP或任何其他语言来显示编号列@make the difference?我会尝试。您也不需要循环。只需要一个select语句。但是为什么@make the difference,我应该将其用于所有变量呢?在我上大学的日子里,我们使用不带@
SELECT @row_number:=@row_number+1 as RowNum, name as Engineer, date
FROM engineers, (SELECT @row_number:=0) as t
order by name;
SET @row_number:=0;
SELECT @row_number:=@row_number+1 as RowNum, name as Engineer, date
FROM engineers
order by name;