Mysql如何将数据从一个字段复制到同一张表中的另一个字段

Posted

技术标签:

【中文标题】Mysql如何将数据从一个字段复制到同一张表中的另一个字段【英文标题】:Mysql how to copy data from one field to other field in same table 【发布时间】:2013-02-20 20:35:34 【问题描述】:

我的mysql表如下:

    id      host             url
--------------------------------------
    1                   test.com/index.php
    2                   domain.com/list
    3                   www.***.com/questions/ask

我需要如下输出

    id      host                 url
------------------------------------------
    1     test.com             test.com/index.php
    2     domain.com           domain.com/list
    3     ***.com    www.***.com/questions/ask

提前致谢。

【问题讨论】:

您希望在插入数据时在 php 中完成此操作 >> 你想要什么。更新? 你的具体问题是什么?????? UPDATE table SET host = url,回答标题中的问题。要从 URL 中提取主机,您要么必须找到合适的 SQL 函数/过程,要么在 PHP 中进行。这将取决于您一次需要处理的条目数量以及它们可能的价值,其中一个值得追求。 【参考方案1】:

使用SUBSTRING_INDEX(str, delim, count):

UPDATE tablename
SET host = SUBSTRING_INDEX(url, '/', 1);

SQL Fiddle Demo

这将使您的表格看起来像:

| ID |                  HOST |                                 URL |
--------------------------------------------------------------------
|  1 |              test.com |                  test.com/index.php |
|  2 |            domain.com |                     domain.com/list |
|  3 | www.***.com | www.***.com/questions/ask |

【讨论】:

【参考方案2】:

假设你的表被命名为t:

UPDATE t
SET host=SUBSTRING_INDEX(url, '/', 1);

【讨论】:

【参考方案3】:

使用SUBSTRING_INDEX

UPDATE tbl1 SET host = SUBSTRING_INDEX(url, '/', 1)

【讨论】:

以上是关于Mysql如何将数据从一个字段复制到同一张表中的另一个字段的主要内容,如果未能解决你的问题,请参考以下文章

在 MySQL 中,如何将一张表的内容复制到同一个数据库中的另一张表中?

在 MySQL 中,如何将一张表的内容复制到同一个数据库中的另一张表中?

转换后将数据从一列复制到同一表中的另一列

在SQL数据库中如何把一个表的同一个字段复制到同一个表的另一个字段?

是否可以从我的 MySQL 数据库中的一个表中的一行中获取一个值并插入到同一数据库中的另一个表中?

将数据复制到同一张表和从同一表复制数据,并将复制数据的一列中的值更改为指定值