我的数据库表现得有些奇怪,我发现某些产品的coin_id
有一个“空格”作为他们的第一个字母。因此,而不是“123456”,它是“123456”。我试图找到以“空格”开头的所有coin_id
,然后删除空格。
答案 0 :(得分:3)
无需自己查找,只需在UPDATE
查询中修剪它们。如果不应该是前导或尾随空格,请使用LTRIM
或TRIM
:
UPDATE table_name SET coin_id = LTRIM(coin_id)
正如Dudu Markovitz指出的那样,特别是如果很少更新很多,你可以找到它们并更新它们以获得更好的性能:
UPDATE table_name SET coin_id = LTRIM(coin_id) WHERE coin_id LIKE ' %'
或TRIM
:
UPDATE table_name SET coin_id = TRIM(coin_id)
WHERE coin_id LIKE ' %' OR coin_id LIKE '% '
答案 1 :(得分:1)
更新有性能影响 只更新您需要更新的内容。
result
答案 2 :(得分:0)
这个怎么样? 从以空格开头的列中删除一个字符
UPDATE table
SET coin_id = RIGHT(coin_id,LENGTH(coin_id)-1)
WHERE LEFT(coin_id,1) = ' ';
答案 3 :(得分:0)
首先,为什么一个由数字组成的id存储为字符串?也许“12345”并不是真正具有代表性的价值。
我建议您使用like
:
update t
set coin_id = trim(coin_id)
where coin_id like ' %';
注意:
like ' %'
允许优化器使用t(coin_id)
上的索引。trim()
。在空格之后,最后也可能是个问题。