Мне нужно создать представление, которое имеет столбец с именем row_num, где будет вставлен номер строки, точно так же, как автоматическое приращение в обычной таблице.Создать представление с помощью столбца num_rows - MySQL
Я действительно новый с видами, поэтому, пожалуйста, со мной. Скажем Я эту нормальную таблицу:
| country | name | age | price |
--------------------------------
| US | john | 22 | 20 |
| France | Anne | 10 | 15 |
| Sweden | Alex | 49 | 10 |
И так далее ...
мнение, я хочу создать это:
| country | name | price | row_num |
------------------------------------
| US | john | 20 | 1 |
| France | Anne | 10 | 2 |
| Sweden | Alex | 5 | 3 |
И так далее ...
Я могу сгенерировать row_num с одним выбором:
SELECT @i:[email protected]+1 AS row_num, testing.country, testing.name, testing.price
FROM testing testing,(SELECT @i:=0) derivedTable
order by name
Но моя проблема заключается в объединении запроса выше с запросом, создающим представление. Это комбинированный запрос я пытаюсь:
CREATE OR REPLACE view vwx (country, name, price, num_row) AS SELECT mytable.country, mytable.name, mytable.price, @i:[email protected]+1 AS row_number
FROM testing testing,(SELECT @i:=0) derivedTable
order by name;
Я получаю следующую ошибку: # 1351 - ВЫБРАТЬ View содержит переменную или параметр
Я знаю, что я не могу использовать отборное внутри отборное с представлениями, но я не вижу другого способа сделать это так, как хочу, но я уверен, что есть способ сделать это, но я просто не знаю, как это сделать. Вероятно, с функциями или процедурами, но я для них действительно новичок, поэтому мне неудобно создавать функции или процедуры в mysql.
Надеюсь, я ясно дал понять, что я более чем счастлив объяснить себя более подробно.
Почему нет автоматического приращения, например, «обычной таблицы», которую вы можете использовать? – Neal
Потому что я не проектировал эту таблицу, и эта таблица хранит тысячи и тысячи записей. Кроме того, они не позволяют мне что-либо менять на этом столе, поэтому я использую представления. – dazito
Ах, и еще одна деталь @Neal, о которой я забыл упомянуть, это представление создается с предложением where, я не помещал его туда, поскольку я думал, что это не важная деталь. – dazito