sql >> Database teknologi >  >> RDS >> Mysql

Hvad er php-ækvivalenten til @row:[email protected]+1

MySQL>8.0

Du kan opnå den samme opgave ved hjælp af en vinduesfunktion. Hvis jeg ikke tager fejl, er den korrekte måde at gøre det på som følger:

SELECT t.* FROM (SELECT *, Row_number() OVER() AS rn FROM location_values) t 
WHERE t.rn % 10 = 1

https://www.db-fiddle.com/f/tb2nLZ6dkDPaQxkc6My9Yg/2

MySQL <8.0

Du kan efterligne vinduesfunktionen ved at bruge sessionsegenskaben, men dette er ikke altid pålideligt.

Metode 1 (kan kun udføres én gang; anbefaler ikke):

SELECT t.*
FROM
    (SELECT *, @position:=((SELECT ifnull(@position, 0)) + 1) AS rn FROM location_values) t
WHERE t.rn % 10 = 1

Metode 2:

SELECT location_values.*
FROM location_values,
    (SELECT @row_number:=0) AS temp
WHERE (@row_number:[email protected]_number + 1) % 10 = 1

https://www.db-fiddle.com/f/tb2nLZ6dkDPaQxkc6My9Yg/3




  1. XAMPP/MySQL:kunne ikke åbne single-table tablespace-filen .\mysql\innodb_index_stats.ibd efter genstart af MySQL

  2. Indsæt IP-adressen på de downloadede filer i mysql

  3. opret 3 afhængige rullelister ved hjælp af php ajax mysql

  4. Perl - DBI og .pgpass