Sql - 在列的第一个空单元格中插入值并显示ID

时间:2013-11-29 08:38:47

标签: php mysql sql select insert

我有一个SQL语句,它会将值插入第一个空单元格。如果我再次运行PHP脚本,那么它会插入下一个空单元格等。

问题:我还想查找该行的ID以及该行中另一列的值。在下面的MySQL表中,我想要在COLUMN A的第一个'null'中插入一个值,并且还知道COLUMN B中对应的ID和值(即ID = 3和COLUMN B = 11)。

MY_TABLE

ID   COLUMN A   COLUMN B
1       6             78
2       7             90
3      NULL           11
4      NULL           5
5      NULL           123

PHP脚本中的以下sql语句可以将值插入COLUMN A中的第一个空单元格:

UPDATE My_TABLE
SET COLUMN A = 83
WHERE COLUMN A IS NULL
LIMIT 1;

结果将是:

ID  COLUMN A    COLUMN B
1   6             78
2   7             90
3   83            11
4   NULL          5
5   NULL          123

我还希望有一个SQL脚本,它将在PHP(echo)中打印最后更新的COLUMN A null值的ID和COLUMN B的相应值(即ID = 3; COLUMN B = 11)。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

你去吧

<?php
// just in case, for comparison
$q = 'SELECT `id`,`colB` FROM My_TABLE WHERE `colA` IS NULL ORDER_BY `id` LIMIT 1';
$row = $pdo->query($q)->fetch(PDO::FETCH_ASSOC);
if ($row) {
  // voialà, the value for COLUMN B is now known
  list($id, $colB) = $row;
  $q = 'UPDATE My_TABLE SET `colA`=? WHERE `id`=?';
  $stmt = $pdo->prepare($q);
  // voilà, your row is updated
  $stmt->execute(array($valueForColumnA,$id));
}

当心,不要复制并粘贴威利威利。读它,看它,闻它并理解它。有问题吗?