Potrzebuję utworzyć widok, który ma kolumnę o nazwie nr_wiersza, w której zostanie wstawiony numer wiersza, podobnie jak automatyczny przyrost w normalnej tabeli.Utwórz widok z kolumną num_rows - MySQL
Jestem naprawdę nowy z widokami, więc proszę o mnie. Powiedzmy mam to normalne tabeli:
| country | name | age | price |
--------------------------------
| US | john | 22 | 20 |
| France | Anne | 10 | 15 |
| Sweden | Alex | 49 | 10 |
i tak dalej ...
widok Chcę utworzyć to:
| country | name | price | row_num |
------------------------------------
| US | john | 20 | 1 |
| France | Anne | 10 | 2 |
| Sweden | Alex | 5 | 3 |
I tak dalej ...
Potrafię wygenerować liczbę wierszy za pomocą jednego wyboru:
SELECT @i:[email protected]+1 AS row_num, testing.country, testing.name, testing.price
FROM testing testing,(SELECT @i:=0) derivedTable
order by name
Ale moim problemem jest połączenie powyższego zapytania z zapytaniem tworzącym widok. To w połączeniu kwerenda Próbuję:
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;
pojawia się następujący błąd: # 1351 - widok na SELECT zawiera zmienną lub parametr
wiem, że nie można używać wewnątrz select select z widokami, ale nie widzę innego sposobu na zrobienie tego widoku tak, jak chcę, ale jestem pewien, że jest sposób, aby to zrobić, ale po prostu nie wiem jak. Prawdopodobnie z funkcjami lub procedurami, ale jestem naprawdę dla nich nowy, więc nie jestem zadowolony z tworzenia funkcji lub procedur w mysql.
Mam nadzieję, że wyraziłem się jasno, w przeciwnym razie z przyjemnością wyjaśnię więcej szczegółów.
Dlaczego nie ma automatycznego inkrementacji, jak "zwykły stół", z którego można korzystać? – Neal
Ponieważ nie zaprojektowałem tego stołu, a ten stół zawiera już tysiące i tysiące zapisów. Poza tym nie pozwalają mi niczego zmienić na tym stole, dlatego używam widoków. – dazito
Ah, i jeszcze jeden szczegół @ Nie, że zapomniałem wspomnieć, że widok jest tworzony z klauzulą where, nie umieściłem go tam, ponieważ myślałem, że to nie jest ważny szczegół. – dazito