【问题标题】:Copy part of string field (in table A) into a new field (table B) connected by a table C将部分字符串字段(在表 A 中)复制到由表 C 连接的新字段(表 B)中
【发布时间】:2011-06-09 02:33:24
【问题描述】:

假设我在一个 mysql 数据库中:

  • 名为“user”的表,带有“id_user”和“extrafield”
  • 名为“connection”的表与“id_user”和“id_content”
  • 名为“content”的表,带有“id_content”和“user_content”

在“user_content”中,我有多个字段,例如:

<br />::field1::fieldvalue::/field1::<br />::field2::fieldvalue::/field2::<br />

从“user”的“extrafield”中的“content”中复制“field2”值的最佳查询是什么?

谢谢

【问题讨论】:

    标签: mysql select position substring


    【解决方案1】:
    SET @user = 1;
    
    UPDATE content
    SET content.user_content = replace(content.user_content, 'field2', 
             (SELECT extrafield FROM user WHERE id_user = @user))
    WHERE content.id_content 1;
    

    此查询将为您进行替换。不过,您必须适当地加入表格。

    【讨论】:

    • 这行不通。我必须使用子字符串从内容中获取值。
    • 你是从内容复制到用户吗?我以为情况正好相反。

    • 标签是字段值的一部分吗?
    • 那么您将不得不查看正则表达式解决方案。也许使用 regexp() 函数。
    • 是的,
      ::field1::fieldvalue::/field1::
      ::field2::fieldvalue::/field2::
      是一个例子user_content 的字段
    猜你喜欢
    • 2012-03-24
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 2020-08-02
    • 2019-06-28
    • 2021-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多