Как сгенерировать серийный номер при выборе всех данных из таблицы?

0

Мне нужен серийный номер в первой позиции в результате 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

В таблице, где указаны несколько столбцов, и вам нужно изменить порядок столбцов в вашем результирующем наборе, просто укажите имена столбцов. Чтобы перечислить все столбцы из одной таблицы, просто используйте table name а затем dot и *, то есть tableName.*

SELECT serial_number, name, tableName.* FROM tableName;
  • 0
    Теперь это то, что я хочу, это работает, спасибо.
  • 0
    Ок, отлично! Пожалуйста, примите решение, чтобы другие пользователи знали, что это решение для такого рода проблем.
0

Вам не нужно генерировать серийный номер с помощью 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

  • 0
    даже если я сделаю это, ваш запрос на выбор не будет работать, becoz * не сможет использовать после этого. Кстати, мой вопрос заключается в создании серийного номера на запрос выбора, если у меня уже есть SN, чем мой не повысился бы. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню