我有一个非常大的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 '%.__'
由于
答案 0 :(得分:1)
您不能在替换中使用通配符,因此没有匹配的行。
幸运的是,如果您只想添加0,则可以连接字符串值:
UPDATE `STStbl000010AT`
SET `InvoiceNo` = CONCAT(`InvoiceNo`,'0')
WHERE `InvoiceNo` LIKE '%.__'