Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak pobrać 2 razy w MYSQL PDO bez FETCHALL

Cofam to, wygląda na to, że możesz użyć wartości orientacji kursora, aby wybrać wynik... nadchodzi przykładowy kod... Nie próbowałem tego, więc być może będziesz musiał trochę pograć. Jest to również oparte na założeniu, że PDO::FETCH_ORI_FIRST zachowuje się jak data_seek i pozostawia kursor na pierwszej pozycji, w przeciwieństwie do zwracania go do tego, co było wcześniej.

$stmt = $pdo->prepare('SELECT id FROM table', array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
$stmt->execute();

$first = $pdo->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_FIRST);
$first_row = $first['id'];

// other stuff

// first iteration we rewind to the first record;
$cursor = PDO::FETCH_ORI_FIRST;

while (false !== ($row = $stmt->fetch(PDO::FETCH_ASSOC, $cursor))) {
   $id = $row['id'];
   // successive iterations we hit the "next" record
   $cursor = PDO::FETCH_ORI_NEXT; 
   echo $id;
}

Nie sądzę, że można cofnąć instrukcję... Zakładając, że te bloki nie są oddzielone garścią pośredniej logiki, po prostu zrób to w pętli.

$STH->setFetchMode(PDO::FETCH_COLUMN); // no need to pull an array
$count = 0;
while ($id = $STH->fetch()) {      
  if($count === 0) {
   $first_row = $id;
  }
  echo $id;
  $count++;
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa funkcja UCASE() w MySQL

  2. MAX() – Znajdź maksymalną wartość w kolumnie w MySQL

  3. Czy mogę używać samodzielnej warstwy bazy danych Laravel?

  4. Co to jest SQL? Co to jest baza danych? Systemy zarządzania relacyjnymi bazami danych (RDBMS) wyjaśnione w prostym języku angielskim.

  5. MySql Query Zastąp NULL pustym ciągiem w Select