拆分分隔文本并与另一个字段配对

时间:2013-11-06 15:38:22

标签: php mysql sql arrays opencart

我希望这不是一个重复的问题,我发现很多相似但没有一个符合我的要求。我试图用Splitting mysql value into unknown number of parts得到一个解决方案,但我想也许我问了错误的问题 - 我指定不想在这个问题上使用php。它也接近Can you split/explode a field in a MySQL query?但是,这并没有完全定义它。我安装common_schema看起来它将是一个强大的工具,但我无法得到它返回我希望的结果。我已经尝试foreachexplode一起使用,但我无法使用它获取同一数组中的所有数据。长序,但这是问题所在。 我有一张包含下表的数据库。

id categories

100 |88|

102 |88|243|

442 |228|243|228|239|228|

我正在重新构建它以将其置于OpenCart中。

所以需要像这样或在数组中我可以用来创建这个

ID category

100 88

102 88

102 243

442 228

442 243

442 228

我进入和退出数据库没有问题,只是修改数据以将ID绑定到每个类别,但是在该字段中可能存在很多。我花了大约2天试图找到解决方案,我确信这是非常基本的。 我最接近的是foreach

但最终得到一个数组

array ('ID' => 442,
       'Category' => array (0 => 228, 1 => 243, 2 => 228 etc)

1 个答案:

答案 0 :(得分:1)

根据您检索查询结果的方式,您可以执行以下操作:

foreach($result as $row) { // iterate over each row in the query result

    $categories = array_filter(explode('|', $row['categories']));

    foreach($categories as $category) {
        // insert row into new table with id $row['id'] and category $category
    }
}