【问题标题】:MySQL, adding a string to all column valuesMySQL,将字符串添加到所有列值
【发布时间】:2012-12-09 13:11:46
【问题描述】:

有一个包含 2 列的 MySQL 数据库表: 身份证,网址

url 列的值类似于“http://www.example.com/”。

我需要在所有列值的开头添加一个类似“http://www.x.com?redirect=”的字符串 - 即更改如下值: http://www.example.com/ ===> http://www.x.com?redirect=http://www.example.com/

有人知道我该怎么做吗?

我已经研究过使用 CONCAT(),但到目前为止我还不能让它工作:(

非常感谢您的帮助, 路易莎

【问题讨论】:

  • 您想永久添加上述前缀(即更新表的内容),还是仅将其添加到SELECT 查询的结果中?此外,这种处理是否更适合您的应用程序的表示层?

标签: mysql concat


【解决方案1】:

使用 concat 会是这样的:

update table set url=concat('http://www.x.com?redirect=',url);

【讨论】:

  • 太棒了!简单明了的解决方案。非常感谢。
【解决方案2】:

是的,你可以使用CONCAT

SELECT CONCAT('http://www.x.com?redirect=', url) AS url
FROM yourtable

在线查看:sqlfiddle

【讨论】:

    【解决方案3】:

    你可以这样做:

    Update myTable
    SET data= (SELECT CASE WHEN data IS NULL THEN '' ELSE data END AS data WHERE id = 1) + 'some text'
    WHERE id = 1
    

    field = field + value 在 field 为空时不起作用。

    【讨论】:

      【解决方案4】:

      看看this SO answer的代码sn-p:

      update t set data=concat(data, 'a');

      类似的东西应该可以工作:

      update t set data=concat('http://www.x.com?redirect=', data);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-27
        相关资源
        最近更新 更多