如果值只是数字,有没有办法更新mysql中的列?
即。 UPDATE myTable SET ColumnA =NewValue WHERE ColumnA isnumeric
Column A
为varchar(25)
,Column A
值可能为文字或1或2或23 ......
谢谢你
答案 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]+';
答案 3 :(得分:0)
尝试这样的事情。它对我有用
if ('value_to_check' REGEXP '^[0-9]+$') {
THEN
// Do ur work,..
}
答案 4 :(得分:-2)
使用正则表达式查看您的列是否包含数字或其他任何内容
WHERE ColumnA REGEXP '[0-9]+'