【问题标题】:How to change the data of a column in mysql?如何更改mysql中列的数据?
【发布时间】:2017-05-16 05:33:23
【问题描述】:

我需要从table1 更改一列的一些数据,然后,我将table1 的一些数据复制到new_table,这是我的示例表。

table1

id | url | user1_ign | user2_ign | message | fields that are not needed anymore

new_table

id | url | user1_ign | user2_ign | message

基本上,table1 的字段不在new_table 中。我的问题是我不知道如何在将字段复制到新表时更改字段中的数据(已在此处搜索)。

我需要更改url 的数据。这是布局。

table1

id | url        | user1_ign | user2_ign | message     | some field

1  | jj-HasZNsh | jj        | gg        | hello dude! | ...

new_table

id | url           | user1_ign | user2_ign | message

1  | jj-gg-HasZNsh | jj        | gg        | hello dude!

这就是我需要做的,如您所见,我需要根据user1_ignuser2_ign 更改new_table 中的url。有没有办法解决这个问题?

更新

我在 table1 number-HasZNshalphabet-HasZNsh 中有这种 url

我需要他们在 new_table

中变成这样
  • number-HasZNsh -> ign1-ign2-HasZNsh
  • alphabet-HasZNsh -> ign1-ign2-HasZNsh

这是我需要专门做的。

【问题讨论】:

  • 关于您的修改,我建议您查看SPLIT。在服务器上安装存储过程后,您可以像使用该解决方案中所示的任何其他命令一样使用它。对于您的情况,实际上只是根据您的口味调整我的解决方案中的 REPLACE(url ......) 行。
  • 是的,你的解决方案很棒,我只是不知道如何让 url 中的哈希值还在。
  • 如果安装了上面的存储过程,可以做CONCAT(ign1, '-', ign2, '-', SPLIT(url, '-', 2)) `url`

标签: mysql phpmyadmin


【解决方案1】:

您可以将目标表的INSERT 语句与SELECT 结合起来,以设置要插入的值。对于上面指定的 url 字段,您可以使用 REPLACE 替换字符串中的字符串。

INSERT INTO 
   `new_table` (id, url, user1_ign, user2_ign, message)
SELECT
   id, 
   REPLACE(url, '-', '-gg-') `url`,
   user1_ign,
   message
FROM 
   `table1`

如果您希望从另一个字段中获取REPLACE 行的gg 部分的数据,您可以使用:

INSERT INTO 
   `new_table` (id, url, user1_ign, user2_ign, message)
SELECT
   id, 
   REPLACE(url, '-', CONCAT('-', user2_ign, '-') `url`,
   user1_ign,
   message
FROM 
   `table1`

有关上述命令语法的更多信息:

【讨论】:

  • 我认为 -gg- 不是硬编码的,而是基于 user2_ign 列
  • @barudo 如果是这种情况,他可以将REPLACE(url, '-', '-gg-') `url` 替换为REPLACE(url, '-', CONCAT('-', user1_ign, '-') `url`
  • url 里面的 REPLACE 是什么?那是列名本身吗?
  • @DumbQuestion 是的,这就是列名本身。在SELECTFROM 之间是选定的列。您可以使用其中的其他 SQL 命令转换数据,就像我对 REPLACE 和最后一条评论 CONCAT 所做的那样。此示例还假设 `new_table` 中的字段类型和大小足以用于复制/转换的数据。
  • 呃,我想你错过了一个右括号 ) 替换?我需要把它放在哪里?在url 之前?
猜你喜欢
  • 2010-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-05
  • 2023-04-04
  • 1970-01-01
  • 2013-03-06
  • 1970-01-01
相关资源
最近更新 更多