我需要一点帮助来从序列化的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函数