gpt4 book ai didi

php - 使用mysql获取空列的名称

转载 作者:可可西里 更新时间:2023-11-01 08:37:20 26 4
gpt4 key购买 nike

我有一组图像路径存储在这样的表中:

    +---------------------------------------------------------+
|ID |pimg0 |pimg1 |pimg2 |
+-------------+-------------+--------------+--------------+
|1 |path/to/img0 |path/to/img1 | |
+---------------------------+--------------+--------------+
|2 |path/to/img0 |path/to/img1 | |
+---------------------------+--------------+--------------+

我想获取空字段的表名,以便我可以在其中放入一个新条目。

我试过在 mysql 查询中嵌套 IFNULL() 命令,但没有成功:

    IFNULL(pimg0, IFNULL(pimg1, IFNULL(pimg2, IFNULL(pimg3, IFNULL(pimg4, IFNULL(pimg5))))))

我也尝试了一些不起作用的案例 block 。理想情况下,我希望我的查询在上述情况下返回“pimg2”,但如果要返回“pimg1”,我可以轻松地增加它。

编辑:编辑上表,以澄清。

最佳答案

您正在经历 repeating groups across columns 的痛点之一,这违反了第一范式。

如果您通过创建一个带有一个列作为图像路径的子表,并在您有多个图像时添加多个行来规范化,那么痛苦就会消失。

CREATE TABLE Images (
image_id INT AUTO_INCREMENT PRIMARY KEY,
owner_id INT NOT NULL, -- references `id` in your original table
pimg VARCHAR(40)
);
INSERT INTO Images (owner_id, pimg) VALUES
(1, 'path/to/img0'), (1, 'path/to/img1'),
(2, 'path/to/img2'), (2, 'path/to/img3');

以这种方式构建数据库可以更轻松地完成许多任务:

  • 通过插入新行插入新图像;无需查找空白列。
  • 将第四张或第五张图片添加到给定的 owner_id
  • 搜索给定图像并报告哪个 owner_id 拥有它。
  • 对每个 owner_id 的图像进行计数。
  • 避免重复。

关于php - 使用mysql获取空列的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8594124/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com