3 回答

TA贡献1856条经验 获得超11个赞
这应该可以满足您的需求:
UPDATE `data`
SET person4 = IF(person4 IS NULL AND person3 IS NOT NULL, 'value', person4),
person3 = IF(person3 IS NULL AND person2 IS NOT NULL, 'value', person3),
person2 = IF(person2 IS NULL AND person1 IS NOT NULL, 'value', person2),
person1 = IF(person1 IS NULL, 'value', person1)
WHERE id = $id;
编辑:您想按相反的顺序执行SET的原因是,MySQL将单独执行每个SET,并且这些结果将在IF()条件下用于下一个SET。因此,如果将person2设置为一个值,然后检查person3,将看到person2已被填充,并设置person3,则对person4的检查将看到person3具有值,并且也将person4设置为。反向检查可以完全避免这种情况。

TA贡献1725条经验 获得超7个赞
所以我找到了解决方案...
我已经通过一条select语句提取了所有表数据。然后每行只做了很多php if语句。
如果一个单元格为空,请更新该单元格,否则请检查下一列中的单元格是否为空。
- 3 回答
- 0 关注
- 129 浏览
添加回答
举报