序列化ID字段中的总用户数

时间:2016-10-18 14:19:32

标签: php

我需要一些帮助,以便从序列化的ID字段中获取与特定公司相关联的用户数

TABLE_USER
user_id
user_name
user_companies <- Serialized id field

如果我有一个INT字段,我可以通过这种方式获得价值:

 SELECT * FROM table_user WHERE user_companies = 1

但是,如何从序列化字段中获取总用户数? 任何一个例子将不胜感激

TKS全部

1 个答案:

答案 0 :(得分:1)

这不是使用数据库的方法。理想情况下,您应该与用户和公司建立联合表。运行一个选择,反序列化并插入到可以加入的新表中的脚本并不困难。但假设你必须在PHP中这样做:

// SELECT * FROM table_user

$company_id = 1;

while($row = your_fetch_array()) {
    if(in_array($company_id, unserialize($row['user_companies'])) {
        $results[] = $row;
    }
}

要在结果数组中获取未序列化的公司:

while($row = your_fetch_array()) {
    $companies = unserialize($row['user_companies']);

    if(in_array($company_id, $companies) {
        $results[] = array_merge($row, array('user_companies' => $companies));
    }
}

您没有提及您的数据库或API,因此请像往常一样查询和获取。

如果您使用JSON(仍然不推荐),那么您可能会从MySQL JSON Functions获得一些里程数。