首页 > 解决方案 > 将 B 列复制到 A 列(排序)

问题描述

我正在尝试找出一种安全的方法(如果可能的话)来获取“url”列并将其复制到“company”列中......但我不只是想复制整个内容 - 让我尝试解释。

我想复制公司名称,例如:apple、mircosoft..etc(从路径)并将它们放入他们的公司列(左侧)。我有大约 5000 多个结果需要完成并安全完成。它们都具有与“../../images....”相同的文件路径结构

我可以使用 UPDATE 和 SET 之类的东西吗?

UPDATE table SET company = url


在此处输入图像描述

感谢您的反馈!对此,我真的非常感激!

标签: phpmysqlphpmyadmin

解决方案


您可以在由您选择的字符分隔的字符串中挑选出最左侧的 N 个“字段”。

SELECT SUBSTRING_INDEX(url, '/', 4)
FROM mytable
LIMIT 10;

回报:

../../images/apple
etc.

然后使用 -1 获取该结果的最右侧字段以获取最后一个。

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(url, '/', 4), '/', -1)
FROM mytable
LIMIT 10;

回报:

apple

一旦您对表达式感到满意,请在 UPDATE 中使用它:

UPDATE mytable SET company = 
  SUBSTRING_INDEX(SUBSTRING_INDEX(url, '/', 4), '/', -1);

https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_substring-index


推荐阅读