来自序列化id字段的用户总数


Total users from serialized id field

我需要一点帮助来从序列化的id字段获取与特定公司相关联的用户数量。

TABLE_USER
user_id
user_name
user_companies <- Serialized id field

如果我有一个INT字段,我可以这样获取值:

 SELECT * FROM table_user WHERE user_companies = 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函数