我想从数据库中获取重复数据,但问题是:
我有一个数组中的用户ID:
1235, 1235, 5468, 84321, 1235
我使用了implode并将实现中的字符串中的数组放入数据库中,如:
"select * from tbl_name where userid in ('" . $implode_arr . "') limit 0, 10";
这给我的结果如1235, 5468, 84321
,但我想要所有的数据,解决方法就是在FOR LOOP
中运行查询,否则
但我想要相同,因为我在查询中添加了分页。
我不想要任何代码,因为它已经正常工作但问题是添加分页请帮助解决问题:(
答案 0 :(得分:0)
听起来您想要将用户数据加入此查询中。您可以使用LEFT JOIN这样做:
SELECT *
FROM tbl_name
LEFT JOIN database_name.user ON database_name.user.id = tbl_name.userid
WHERE userid IN (...)
LIMIT 0, 10
这假设您的用户存储在user
数据库的database_name
表中,并且用户表的id
字段与tbl_name
匹配字段userid
。如果您的字段或表名称不同,只需在此查询中更改它们即可。在PHP中将是:
"SELECT * FROM tbl_name LEFT JOIN database_name.user ON database_name.user.id = tbl_name.userid WHERE userid IN ('" . $implode_arr . "') LIMIT 0, 10"
请注意,要连接两个数据库,这两个数据库必须可由同一个连接用户访问。
答案 1 :(得分:0)
尝试此操作也会按预期工作
select * from tbl_name where FIND_IN_SET(user_id,'1235, 1235, 5468, 84321, 1235
') limit 1,10