我的BD中有这个:
以下:12,13,2,4(这是以下一个用户列表的用户ID)
我想知道有多少关注者拥有一个用户。
我有这段代码:
$followers = $db->fetch_field($db->simple_select('users', 'COUNT(*) AS followers' , "buddylist IN ($useruid) "), 'followers');
$Followers = $followers;
仅当列表的第一个数字与$ useruid相同时才有效。 例如:
$ useruid = 1, buddylist = 3,2,1
$followers = $db->fetch_field($db->simple_select('users', 'COUNT(*) AS followers' , "buddylist IN ($useruid) "), 'followers');
$Followers = $followers;
out out it 0
如果buddylist是1,2,3
输出是一个。
出了什么问题? :(
答案 0 :(得分:0)
您可以使用FIND_IN_SET()
代替IN()
,因为IN
会在一组结构化字段中查找您比较的字符串,而您的字段是逗号分隔的ID字符串。 FIND_IN_SET()
将在该字符串中查看:
$followers = $db->fetch_field(
$db->simple_select(
'users',
'COUNT(*) AS followers',
"FIND_IN_SET($useruid, buddylist)"
),
'followers'
);
答案 1 :(得分:-1)
很难说不知道你的数据库内容。
我想你的$ useruid中的用户是数组
通过`implode(',',$ useruid)`将数组转换为字符串,并在mysql statment之前替换$ useruid
一切都应该可以正常工作