如何一次选择整行数据表?

时间:2012-07-16 14:59:41

标签: php sql select row

我有一张包含10,000条记录的表(客户)。我想一次修改一个记录,修改一些数据然后再更新回数据库。 SELECT * FROM customer然后fetchAll是没有意义的,因为有10,000条记录。

我想在PHP中创建一个while循环来执行递增的SELECT语句但是如果没有稳定增长的稳定主键,那么像这样的select语句会是什么样子?逻辑上,while循环看起来像:

$row = 1;
while(Number_Rows_In_Table)
{
  $record = $this->db->exec("SELECT * FROM customer WHERE ROW = $row");
  $row++;
  //Do something with the data then update it
}

有办法做到这一点吗?

4 个答案:

答案 0 :(得分:2)

可以使用偏移量,限制MySQL中可用的语法......但这似乎是一件奇怪的事情

SELECT * FROM customer LIMIT $row, 1

假设$row从0开始并自动递增(如您的示例中所示)。您可能还需要订购它。

答案 1 :(得分:2)

您不必使用fetchAll,您知道:

$stmt = $pdo->query("SELECT * FROM `table`");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    //Do stuff with specific rows one a time
}

比拥有10,000个选择查询快得多。我可以向你保证。

答案 2 :(得分:0)

您无需致电fetchAll()并抓取所有行,只需使用fetch()SELECT * FROM customer查询中一次获取一行。

答案 3 :(得分:0)

根据您需要更新的内容,您可以使用SQL。例如,要找到并替换刺痛:

update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, ‘find this string’, ‘replace found string with this string’);