MySQL:如果value仅为数字,则更新列

时间:2013-12-31 09:35:34

标签: mysql sql regex sql-update numeric

如果值只是数字,有没有办法更新mysql中的列?

即。 UPDATE myTable SET ColumnA =NewValue WHERE ColumnA isnumeric

Column Avarchar(25)Column A值可能为文字或1或2或23 ......

谢谢你

5 个答案:

答案 0 :(得分:4)

使用REGEXP()功能

试试这个:

UPDATE myTable SET ColumnA = NewValue WHERE ColumnA REGEXP '^[0-9]+$'

UPDATE myTable SET ColumnA = NewValue WHERE ColumnA REGEXP '^[[:digit:]]+$'

答案 1 :(得分:0)

尝试创建INT列并拨打电话:

update myTable set IntColumn = ColumnA

将intcolumn类型替换为varchar并更新您的表ColumnA = IntColumn(不是真正的数字字符串将为空或与实数不同)。

答案 2 :(得分:0)

试试这个:

UPDATE myTable SET ColumnA =NewValue WHERE concat('',ColumnA * 1) = ColumnA 

或者

UPDATE myTable SET ColumnA =NewValue WHERE ColumnA REGEXP '[0-9]+';

请看这个主题Detect if value is number in MySQL

答案 3 :(得分:0)

尝试这样的事情。它对我有用

if ('value_to_check' REGEXP '^[0-9]+$') {
THEN 
// Do ur work,..
}

答案 4 :(得分:-2)

使用正则表达式查看您的列是否包含数字或其他任何内容

WHERE ColumnA REGEXP '[0-9]+'