добавить столбец из запроса выбора с индексом - PullRequest
0 голосов
/ 07 ноября 2018

Как добавить столбец из запроса на выборку, но значение из нового столбца будет, например, счетчиком строк запроса на выборку.

select quantity from menu;

и возвращается вот так

+--------+
|quantity|
+--------+
|   50   |
|   32   |
|   23   |
+--------+

но я хочу что-то подобное

+----------+--------+
|new column|quantity|
+----------+--------+
|     1    |   50   |
|     2    |   32   |
|     3    |   23   |
+----------+--------+

новый столбец должен начинаться с 1 и заканчиваться счетчиком строк оператора запроса select. Любой ответ поможет Спасибо

Ответы [ 4 ]

0 голосов
/ 07 ноября 2018

В этом случае нужно сначала определить переменную @inc с помощью SET, а значение по умолчанию - 0.

Затем вы включаете @inc в ваш оператор SELECT. Вы даже можете использовать AS для прозвища выражения переменной.

Также как часть SELECT вы заботитесь о приращении значения в @ inc.

Код будет выглядеть примерно так:

SET @inc :=0;
SELECT
 @inc := @inc + 1 AS a, 
`some_field` 
FROM 
`some_table`;

Надеюсь поможет!

0 голосов
/ 07 ноября 2018

Вы можете использовать:

select row_number() over (order by quantity desc) as col1, quantity
from menu;

Это предполагает, что вы хотите, чтобы строки, перечисленные по количеству в порядке убывания.

0 голосов
/ 07 ноября 2018

См .: https://stackoverflow.com/a/6055852/3368558

Для вашего примера:

select @rownum:=@rownum+1 as rowNum, quantity 
from menu  
CROSS JOIN (SELECT @rownum:=0) AS user_init;
0 голосов
/ 07 ноября 2018

Поскольку вы можете получить доступ к последней версии MySQL , мы можем просто использовать функциональность Row_Number():

SELECT  
  ROW_NUMBER() OVER () AS new_column, 
  quantity 
FROM menu;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...