【问题标题】:Sql – Insert value in first empty cell of column and show IDSql - 在列的第一个空单元格中插入值并显示 ID
【发布时间】:2013-12-15 09:27:50
【问题描述】:

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

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

我的表

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 中打印(回显)最后更新的 COLUMN A 空值(即 ID=3;COLUMN B=11)的 ID 和 COLUMN B 的对应值。

我该怎么做?

【问题讨论】:

    标签: php mysql sql select insert


    【解决方案1】:

    给你

    <?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));
    }
    

    当心,不要随意复制和粘贴。读它,看它,闻它,理解它。有什么问题吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多