将B列复制到A列(排序)

时间:2018-08-21 22:39:14

标签: php mysql phpmyadmin

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

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

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

UPDATE table SET company = url


enter image description here

感谢您的反馈!我真的很感激!

2 个答案:

答案 0 :(得分:2)

您可以在由您选择的字符分隔的字符串中挑选出最左边的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

答案 1 :(得分:1)

在mysql 8中,您可以使用regexp_substr函数使用正则表达式查找子字符串。像这样:

change

将找到不是SELECT REGEXP_SUBSTR(url, '[^/]+', 14) FROM table; 而是从字符14开始的任何字符(在您的/前导字符串之后。