在MYSQL表中的所有列值前添加一个前缀。
在MYSQL表中的所有列值前添加一个前缀。
我有一个MySQL数据库表,我需要给一个特定列/字段(productcode
)的所有值添加前缀"35-",这些值的category
数大于500。所以,例如,我希望将productcode值123A56B789
更改为35-123A56B789
,并在表的所有其他行中都是如此。
另一个问题是,这一列是该表的主键,但我试图通过添加一个额外的索引列来解决这个问题,将其定义为主键,删除"productcode"上的索引,并尝试以下查询(以便稍后再将其定义为主要索引):
UPDATE my_table SET productcode = '35-' + productcode WHERE category >= 500
我没有收到任何错误或警告信息(甚至没有"xxxx行受到影响"的消息),但是没有任何可见的效果——productcodes保持与之前相同。
是否有一种直接在MYSQL中实现这一目标的方法?
问题出现的原因是需要在MYSQL表的某一列的所有值前面添加一个前缀。解决方法是使用CONCAT函数来将35-添加到productcode列的开头。具体的解决方案是使用UPDATE语句来更新表中满足条件的行,将productcode列的值与35-进行拼接。
以下是整理后的文章:
您可以使用CONCAT函数将35-添加到productcode列的开头。请检查以下代码。
UPDATE my_table SET productcode = CONCAT('35-', productcode) WHERE category >= 500;
非常完美,这正是我正在寻找的-非常感谢!
不客气。如果它起作用,请接受答案。谢谢。
以上是关于如何给MYSQL表的某一列的所有值添加前缀的问题的原因以及解决方法。使用CONCAT函数可以将35-添加到productcode列的开头。通过执行UPDATE语句并使用CONCAT函数,我们可以更新满足条件的行,将productcode列的值与35-进行拼接。