Мне нужен серийный номер в первой позиции в результате 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 |...
В таблице, где указаны несколько столбцов, и вам нужно изменить порядок столбцов в вашем результирующем наборе, просто укажите имена столбцов. Чтобы перечислить все столбцы из одной таблицы, просто используйте table name
а затем dot
и *
, то есть tableName.*
SELECT serial_number, name, tableName.* FROM tableName;
Вам не нужно генерировать серийный номер с помощью SQL-запроса, поскольку есть встроенная функция хранилища баз данных, которая будет выполнять эту работу за вас.
Просто сделайте serial_number
PRIMARY KEY
которое будет иметь значение по умолчанию AUTO_INCREMENT
.
База данных будет управлять уникальными значениями для вас :)
CREATE TABLE Employee
(
serial_number INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
.
.
)
И тогда вы запустите простой запрос
SELECT serial_number, * FROM tableName;
Смотреть онлайн: http://sqlfiddle.com/#!9/87c45/2