将b列复制到a列(sorta)

r55awzrz  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(235)

我正在试图找出一个安全的方法(如果可能的话)把“url”列复制到“company”列。。。但我不只是想复制整件事-让我来解释一下。
我想复制公司名称,例如:apple,mircosoft..等(从路径中),并将它们放入公司列(在左侧)。我有大约5000多个结果,需要做和做的安全。它们都具有与“../../images…”相同的文件路径结构
我能不能用一些像更新设置之类的东西?

UPDATE table SET company = url


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

uz75evzq

uz75evzq1#

您可以选择字符串中最左边的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 mytable SET company = 
  SUBSTRING_INDEX(SUBSTRING_INDEX(url, '/', 4), '/', -1);

看到了吗https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_substring-索引

nlejzf6q

nlejzf6q2#

在mysql 8中,可以使用regexp\u substr函数使用正则表达式来查找子字符串。比如:

SELECT REGEXP_SUBSTR(url, '[^/]+', 14) FROM table;

会发现任何不是 / 但是从第14个角色开始(在你的主角之后) ../../...etc 字符串。

相关问题