更改字段中的第一个字符

时间:2011-06-23 23:01:48

标签: mysql

我希望在表格(MYSQL)的字段中将第一个字符从“U”更改为“S”,到目前为止,我有以下内容:

UPDATE customers_basket 
SET products_id = REPLACE(
                   LEFT(products_id,1), 'U', 'S') +      
                   SUBSTRING(products_id, 2, CHAR_LENGTH(products_id)
);

但这并没有给我预期的效果,任何人都可以帮助我吗?

谢谢你!

5 个答案:

答案 0 :(得分:12)

UPDATE customers_basket 
SET products_id = CONCAT(
                   REPLACE(
                      LEFT(products_id,1), 'U', 'S'),      
                      SUBSTRING(products_id, 2, CHAR_LENGTH(products_id)
));

您正在尝试将字符添加到一起,例如

select 'c' + 'a';
+-----------+
| 'c' + 'a' |
+-----------+
|         0 |
+-----------+

答案 1 :(得分:4)

update customers_basket 
set products_id = 'S' + SUBSTRING(products_id,2,CHAR_LENGTH(products_id))
where LEFT(products_id,1) = 'U'

答案 2 :(得分:1)

你可以简单地使用:

UPDATE customers_basket SET products_id=CONCAT('S', SUBSTRING(products_id FROM 2));

:而不是用“S”替换初始“U”,只需以“S”开头并复制剩余的字符。

这当然假设products_id条目的所有以“U”开头。如果他们不这样做,只需添加WHERE条件,例如:

UPDATE customers_basket SET products_id=CONCAT('S', SUBSTRING(products_id FROM 2))
WHERE LEFT(products_id, 1) = 'U';

答案 3 :(得分:0)

update customers_basket 
set products_id = CONCAT('S', RIGHT(products_id,CHAR_LENGTH(products_id)-1))
WHERE LEFT(products_id,1) = 'U'

答案 4 :(得分:0)

SUBSTRING(products_id, 2)将为您提供第二个角色。所以你可以这样做:

update customers_basket set products_id = concat( 'S', substring(products_id, 2));

如果您只想更改第一个字符为'U'的那些,只需添加适当的where子句,例如

update customers_basket set products_id = concat( 'S', substring(products_id, 2)) where left(products_id,1)='U';