如何解析MySQL中的这个LONGTEXT字符串字段

时间:2009-07-03 15:38:12

标签: mysql

我需要将以下字段提取到新表中。任何想法,我是否可以专门使用查询,或者我也需要使用PHP?

当前表格结构

USERID  USEREXPERINCE
1       a:4:{i:0;s:20:"business development";i:1;s:6:"design";i:2;s:9:"marketing";i:3;s:15:"press relations";}

必需的表格结构

USERID             USEREXPERINCE
1                  business development
1                  design
1                  marketing
1                  press relations
2                  web development
2                  design
3                  marketing
3                  business development

感谢。

2 个答案:

答案 0 :(得分:0)

您需要使用PHP - “LONGTEXT”数据实际上是一个序列化的PHP数组。

执行以下操作以查看我的意思:

<?php
print_r(unserialize('a:4:{i:0;s:20:"business development";i:1;s:6:"design";i:2;s:9:"marketing";i:3;s:15:"press relations";}'));
?>

因此,最简单的方法是从数据库中读取每一行,反序列化数据并将其插入带有必填字段的新表中。 (我猜你需要搜索这些,因此需要将它们存储为专用字段。)

也就是说,您提供的序列化字符串似乎只是存储ID - &gt;字段名称(而不是任何值),所以我不确定那里发生了什么。

答案 1 :(得分:0)

我会使用PHP,因为调用unserialize()并生成新的INSERT语句比解析MySQL过程中的字符串更容易(尽管也可以这样做)。还要注意,如果您的USERID列当前是主键,因为它不能与新结构一起使用。