如何从表中选择所有数据时生成序列号?

时间:2017-12-14 11:15:57

标签: mysql

我想在SQL结果的第一个位置输入序列号。

我找到了一些类似的解决方案,它正在发挥作用:

select *,@a:=@a+1 serial_number from tableName,(SELECT @a:= 0) AS a;

但我期待

select @a:=@a+1 serial_number,* from tableName,(SELECT @a:= 0) AS a;

serial_number|Name    |...
---------------------------------
  1          | Abc    |...
  2          | Def    |...    
  3          | Ghi    |... 
  4          | Jkl    |...
  5          | Mno    |...

2 个答案:

答案 0 :(得分:0)

您不需要通过SQL查询生成序列号,因为数据库存储的内置功能将为您完成工作。

只需将您的serial_number数据字段设为默认值为PRIMARY KEY的{​​{1}}。

数据库将为您管理唯一值:)

AUTO_INCREMENT

然后你将运行简单的查询

CREATE TABLE Employee
(
serial_number INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
.
.
)

现场直播:http://sqlfiddle.com/#!9/87c45/2

答案 1 :(得分:0)

在包含多列的表中,您需要更改结果集中列的顺序,只需指定列的名称。要列出同一个表中的所有列,只需使用table name后跟dot*,即tableName.*

SELECT serial_number, name, tableName.* FROM tableName;