php - 从下面的行复制 mysql 行值?

标签 php mysql sql

我的问题:

+------+--------------+
|  SKU |    Image     |
+------+--------------+
|  123 |    bild 1    |
| NULL |    bild 11   |
|  124 |    bild 2    |
| NULL |    bild 22   |
|  125 |    bild 3    |
| NULL |    bild 33   |
+------+--------------+

我需要这个:

+-------+------+--------------+
|   id  |  SKU |    Image     |
+-------+------+--------------+
|  123  |  123 |    bild 1    |
|  123  | NULL |    bild 11   |
|  124  |  124 |    bild 2    |
|  124  | NULL |    bild 22   |
|  125  |  125 |    bild 3    |
|  125  | NULL |    bild 33   |
+-------+------+--------------+

如果行 sku 为 NULL,我想从下面的行复制 sku 值。

我试过:

SELECT 
    * , 
    @lastid := sku, 
    IF( sku =  '', @lastid , sku ) AS id 
FROM table;

有什么想法吗?

最佳答案

注意: 这假设您的图像可用于订购数据....据我所知,它看起来像是递增的,这将是提供数据的可用订单

select *, IF( sku IS NULL, @lastid , sku ) AS id, @lastid := sku
from temp
cross join(select @lastid := null)t
order by image;

DEMO

关于php - 从下面的行复制 mysql 行值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25488808/

相关文章:

sql - mysql : Count Posts and Group by date

mysql - 向依赖于第一列的 SELECT 语句添加子查询?

php - 如果没有发布值,则将 NULL 插入 SQL 数据库

PHP - 如何更新 txt 文件中的 JSON 数据?

php - 将照片从iPhone上传到Web服务器

php - 如何通过命令行将 POST 参数传递给 Chromium?

php - 使用 mysqli_* 连接时 aura/sqlquery 中的变量绑定(bind)

php - 通过电子邮件将评论发送到表中存储的电子邮件地址

mysql - 最后一列中包含 TEXT 数据类型的封闭文本可能有错误,出现 MySQL 错误 1064

sql - 如何使用存储过程获取所有 SSRS 订阅数据?