【问题标题】:Rename/change entries depending on other MySQL columns根据其他 MySQL 列重命名/更改条目
【发布时间】:2013-12-24 01:33:06
【问题描述】:

我有一个数据库,其中包含很多我想要重命名的图像条目。假设所有图像的名称都为 Something_X,其中 X 是一个数字,它位于我的数据库的“名称”列中。数据库中有 2 列具有名为“original_width”和“original_height”的原始文件大小。我想更改“名称”中的所有条目,它仍然具有原始大小,但它将原始大小添加到其中,以便“Something_X”变为“Something_X_widthxheight”,这可能吗?我将如何使用 PHP 我的管理员在简单的方法,最好是 SQL 代码。

【问题讨论】:

  • 请添加您的代码尝试并将示例提供给我们使用,没有人会使用它。
  • 并添加样本数据和所需结果。
  • 数据库示例的图像: dropbox.com/s/wkhk7bo6zbil7cz/Untitled.png 我没有代码示例,因为我不知道从哪里开始,基本上我想更新列名。例如,在我的名为“图像”的数据库中,我想更新名称,例如,假设在一个名为“Tohou_27”的图像的一个列中,其名称为“Tohou_27”,其原始“宽度”和“高度”为1920x1200,我想用这个来更新名称列,所以它变成“Tohou_27_1920x1200”而不是原来的名称。

标签: mysql phpmyadmin


【解决方案1】:
UPDATE <yourTableName>
SET name = CONCAT(name,'_',original_width,'x',original_height);

要仅更新尚未更新的行,您可以使用下面的 (sqlFiddle)

UPDATE yourTable
SET name = CONCAT(name,'_',original_width,'x',original_height)
WHERE name NOT LIKE CONCAT('%\_',original_width,'x',original_height);

【讨论】:

  • 非常非常感谢! :D 是否有可能以某种方式调整它以不更新已更改的表,以便如果我在添加更多壁纸后再次运行它,它不会再次将其添加到已更改的表中?也许通过添加一个列来检查它是否已更改或其他什么?
  • @user2406918,查看我的答案底部的查询,该查询只会更新未更改为以 _x 结尾的行。
猜你喜欢
  • 1970-01-01
  • 2012-09-12
  • 2019-09-30
  • 2021-04-23
  • 1970-01-01
  • 1970-01-01
  • 2015-10-10
  • 2021-12-24
  • 2020-02-18
相关资源
最近更新 更多