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

我的mysql表如下:

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

我需要如下输出

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

提前致谢。

【问题讨论】:

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

标签: php mysql sql phpmyadmin sql-update


【解决方案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.stackoverflow.com | www.stackoverflow.com/questions/ask |

【讨论】:

    【解决方案2】:

    假设你的表被命名为t:

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

    【讨论】:

      【解决方案3】:

      使用SUBSTRING_INDEX

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-23
        • 1970-01-01
        • 2012-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多