【问题标题】:MySQL Update Table Field - Moving StringsMySQL 更新表字段 - 移动字符串
【发布时间】:2015-08-20 19:53:05
【问题描述】:

我一直在阅读这个页面,但没有运气:

https://dev.mysql.com/doc/refman/5.5/en/string-functions.html

我不知道如何将一组字符串从一个字段移动到另一个字段。 任何人都可以阐明一些问题。

这是我想做的:

当前表:

+----+---------+-------------------+  
| post_content |    post_title     |    
+----+---------+-------------------+         
| -td- -/td-   | MSOR-RUST-NAVY    |  
| -td- -/td-   | NBLA-SAND-SAND    |         
| -td- -/td-   | SHZA-IVORY-BLACK  |             
| -td- -/td-   | UKRN-IVORY-RUST   |          
+----+---------+-------------------+

最终目标:

+----+--------------+---------------+  
| post_content      | post_title    |    
+----+--------------+---------------+         
| -td- MSOR -/td-   | -RUST-NAVY    |  
| -td- NBLA -/td-   | -SAND-SAND    |         
| -td- SHZA -/td-   | -IVORY-BLACK  |             
| -td- UKRN -/td-   | -IVORY-RUST   |          
+----+------------------------------+

【问题讨论】:

    标签: mysql


    【解决方案1】:

    我不知道这是否是最好的方法,但你可以试试这个:

    SELECT 
      CONCAT(SUBSTRING_INDEX(post_content, ' ', 1), SUBSTRING_INDEX(post_title, '-', 1), SUBSTRING_INDEX(post_content, ' ', -1)) AS post_content,
      CONCAT('-', SUBSTRING_INDEX(post_title, '-', -2)) AS post_title
    FROM tablename
    

    如果post_content 中的内容总是-td- MSOR -/td-,试试这个:

    SELECT 
      CONCAT('-td-', SUBSTRING_INDEX(post_title, '-', 1), '-/td-') AS post_content,
      CONCAT('-', SUBSTRING_INDEX(post_title, '-', -2)) AS post_title
    FROM tablename
    

    编辑 1:那么如何将字段 post_content 更新为新值?

    UPDATE tablename
    SET
      post_content = CONCAT('-td-', SUBSTRING_INDEX(post_title, '-', 1), '-/td-'),
      post_title = CONCAT('-', SUBSTRING_INDEX(post_title, '-', -2))
    

    【讨论】:

    • 那么如何将字段 post_content 更新为新值?我可以在前面添加“更新”吗?
    • 当 post_content 字段中有其他字符串时会发生什么:-td-Cars -/td- -td- -/td-。那么如何在不删除字段中其他内容的情况下设置 post_content 呢?我必须使用 REPLACE 功能吗?
    • @LouiIsMyDog 更好地更新您的任务并添加所有可能的数据。
    • UPDATE wp_posts SET post_content = REPLACE (post_content,' ',CONCAT('', SUBSTRING_INDEX(post_title, '-', 1), '')), post_title = CONCAT(SUBSTRING_INDEX(post_title, '-', -2)) 其中 ID 介于 359 和 429 之间;
    • 谢谢!你帮了大忙!
    猜你喜欢
    • 1970-01-01
    • 2016-01-17
    • 1970-01-01
    • 2019-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多