使用通配符进行更新和替换

时间:2015-05-19 13:18:27

标签: mysql

我有一个非常大的MySQL表,其中包含大量数据,其中一个字段是Invoice No,是一个从1000.001开始的数字(这是一个字符串)。我从离开公司的人那里得到了这个,他们通过excel导入数据,其中一些数字是1000.01而不是1000.010。

当我在php我的管理员中运行此查询时,它显示有超过11k行,所以我可以看到它们。

SELECT  `AnalysisID` ,  `InvoiceNo`
FROM  `STStbl000010` 
WHERE  `InvoiceNo` LIKE  '%.__'
ORDER BY  `STStbl000010`.`AnalysisID` ASC

所以简单地说我需要在这些条目的末尾添加一个0(零)。

我尝试过以下操作,但它只返回0行。

我可以在更新和替换语句中使用这样的通配符吗?

UPDATE `STStbl000010AT`
SET `InvoiceNo` = replace(`InvoiceNo`, '%.__', '%.__0')
WHERE `InvoiceNo` LIKE '%.__'

由于

1 个答案:

答案 0 :(得分:1)

您不能在替换中使用通配符,因此没有匹配的行。

幸运的是,如果您只想添加0,则可以连接字符串值:

UPDATE `STStbl000010AT`
   SET `InvoiceNo` = CONCAT(`InvoiceNo`,'0')
 WHERE `InvoiceNo` LIKE '%.__'