sql >> Databasteknik >  >> RDS >> Mysql

mysql_data_seek pdo motsvarande

Det vanliga svaret är:gör din datasökning direkt i arrayen PDOStatement::fetchAll ... Men det är FEL OM frågan hämtar mycket data (!).

Det finns två riktiga lösningar,

1) om databasen tillåter använd PDO::FETCH_ORI_ABS eller PDO::FETCH_ORI_REL ,exempel,

$result = $sth->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, 973);

(EDIT) Men, som kommenterat av @ChoiZ, har en PDO-MySQL-begränsning :"MySQL stöder inte markörer " (utanför lagrade program) "och drivrutinen kan inte emulera dem åt dig"... Försök senare eller med MySQL:s gafflar, som MariaDB.

2) använd databaslösningen (en sorts paginering). Exempel:

SELECT a, b FROM table LIMIT 1, 973 



  1. Så här fixar du dubbelkodade UTF8-tecken (i en utf-8-tabell)

  2. Använda subquery i en Check-sats i Oracle

  3. Hur kontrollerar jag om en kolumn finns i en SQL Server-tabell?

  4. MySQL LOG2() Funktion – Returnerar bas-2-logaritmen för ett värde