Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: MySQL Insert ja muuttuja

Arttut02 [03.11.2015 20:08:48]

#

SET @rank = 1, @cat = 0;
SELECT w.id, w.wr, @rank := CASE WHEN @cat <> w.category THEN 1 ELSE @rank+1 END AS rank, @cat := w.category AS cat
FROM
(SELECT i.id, i.category...

Eli tarkoituksena on laskea asian ranking per kategoria. Tämä select toimii ihan hyvin. Seuraavaksi olisi tarkoitus pistää tuo tulosjoukko tauluun INSERT INTOlla seuraavaan tapaan

SET @rank = 1, @cat = 0;
INSERT INTO win_rate (id, win_rate, rank, cat)
SELECT w.id, w.wr, @rank := CASE WHEN @cat <> category THEN 1 ELSE @rank+1 END AS rank, @cat := category AS cat
FROM
(SELECT i.id, i.category...

Tämä tuottaa tuonne uuteen tauluun RANKin ja CATin arvoksi 0, eli vaikuttaisi siltä, että nuo muuttujat ei enää toimi.

Onkohan ongelmana siis tuo muuttujien näkyvyys vai onko jokin ajatus/tietämättömyysvirhe?

groovyb [04.11.2015 02:12:47]

#

Onko kenties insertistä unohtunut VALUES?

Arttut02 [04.11.2015 09:50:05]

#

Kyllä se noin pitäisi mennä, jos olen ymmärtänyt oikein.

http://dev.mysql.com/doc/refman/5.7/en/insert-select.html

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta