我希望在表格(MYSQL)的字段中将第一个字符从“U”更改为“S”,到目前为止,我有以下内容:
UPDATE customers_basket
SET products_id = REPLACE(
LEFT(products_id,1), 'U', 'S') +
SUBSTRING(products_id, 2, CHAR_LENGTH(products_id)
);
但这并没有给我预期的效果,任何人都可以帮助我吗?
谢谢你!答案 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';