0

一列返回这样的值:

Something";s:5:"value";s:3:"900";s:11:"print_

我想提取所有长度至少为 3 位的数字,在上述情况下为 900。我如何在 MySQL 中做到这一点?也许使用正则表达式?我不能使用任何索引,字符串的长度和字符串中的数字可以不同。

谢谢!

4

2 回答 2

0

如果您使用的是 PHP,请尝试 unserialize() 它!然后 var_dump 它来查看字符串和数组

于 2013-03-08T12:50:25.710 回答
0

您不能使用 MySQL 提取它们,为此使用任何其他语言。您可以做的是包含一个 Where 子句,这将使您的脚本的工作更轻松。

假设您的列在“示例”表中被称为“序列化”

SELECT serialized FROM example WHERE serialized REGEXP '[0-9]{3,}'

请注意,REGEXP 只是输出 1 或 0

完成查询后,使用您的语言的正则表达式函数提取数字,如下所示:

([0-9]{3,})*

于 2013-03-08T12:51:18.393 回答