知道如何在set子句中使用trim函数编写mysql更新查询吗?

知道如何在set子句中使用trim函数编写mysql更新查询吗?,mysql,sql-update,trim,Mysql,Sql Update,Trim,我需要进行一个更新查询,该查询允许我更新特定列中的前导“0”。我知道我可以编写这样的选择查询来选择下面的修剪值: 从Id=1的MyTable中的SkuCode中选择“0” 但如何实现这一点是在更新查询中。请帮助我。如果列是文本或varchar类型,请尝试 UPDATE MyTable set SkuCode = SUBSTRING(SkuCode,2) WHERE Id = 1 如果此SELECT语句返回要分配给skucode列的值: SELECT t.skucode

我需要进行一个更新查询,该查询允许我更新特定列中的前导“0”。我知道我可以编写这样的选择查询来选择下面的修剪值:

从Id=1的MyTable中的SkuCode中选择“0”


但如何实现这一点是在更新查询中。请帮助我。

如果列是文本或varchar类型,请尝试

UPDATE MyTable set SkuCode = SUBSTRING(SkuCode,2) WHERE Id = 1

如果此SELECT语句返回要分配给skucode列的值:

SELECT t.skucode                        AS current_skucode
     , TRIM(LEADING '0' FROM t.skucode) AS proposed_skucode
  FROM MyTable t 
 WHERE t.id=1 ;
然后您可以将其转换为UPDATE语句,方法是替换SELECT。。。从with UPDATE,并在WHERE子句之前添加SET子句,以将返回sku代码建议值的表达式指定给sku代码列,例如

UPDATE MyTable t
   SET t.skucode = TRIM(LEADING '0' FROM t.skucode)
 WHERE t.id=1 ;

是否总是有一个前导0?那列是什么类型的呢?列的类型是varchartType列的类型是varchar注:这个SUBSTR函数的行为与OP TRIM函数有很大的不同。此SUBSTR表达式将从SKU代码中修剪第一个字符,不管它是什么,而不管它是否为0。这将只修剪一个字符。