我有一个非常旧的数据库,有人没有保持有效的数据格式。所以在我的Column中我有这样的值:
in column is 1234567890 expected 1234567890
in column is 12-345-678-9-0 foo expected 1234567890
in column is bar 1234-567-890 expected 1234567890
in column is 12-34567-foobar-890 expected 1234567890
etc.
我的意思是,有一个数字(总是10位数字),在随机的地方有一些其他的字符。
我在变量$number
中得到了10位数字的整数值。
我想做一些查询,如SELECT * FROM table WHERE Column = $number
,但我想匹配所有行,有这个$number
,如果我将清理我的列正确的格式。
要转换这个字母数字列中的数据,我看到了两种可能性:
- 从表中读取所有条目(通过php,正如您已经指定的标记),用正则表达式
$newValue = preg_replace('/'D/', '', $oldValue);
更改它,并使用该值更新数据库条目。
或
- 使用用户定义的函数,如MySQL UDF RegExp,直接使用MySQL update语句。