如何按格式错误的列选择行

时间:2016-08-25 09:23:53

标签: php mysql

我有一个非常古老的数据库,有人没有保留有效的数据格式。 所以在我的专栏中我有这样的价值观:

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的行,如果我要将列清理为正确的格式。

我不知道,我怎么能这样做:(

1 个答案:

答案 0 :(得分:0)

要转换此字母数字列中的数据,我看到两种可能性:

  1. 从表中读取所有条目(通过php,如您已指定为标记),使用正则表达式$newValue = preg_replace('/\D/', '', $oldValue);进行更改,并使用该值更新数据库条目。
    1. 使用用户定义的函数(如MySQL UDF RegExp)直接使用MySQL更新语句执行此操作。