我在 MySQL 中有两个表:
users
Columns:
1. id
2. username
3. email
4. password
users_roles
Columns:
1. id
2. user
3. role
我将角色保存在这样的数组中:
array(
'1' => 'Carpenter',
'2' => 'Plumber',
'3' => 'Hair Stylist'
)
在搜索表单中,我有上述角色及其 ID 的复选框。在表单处理脚本中,我有$roles
一个具有选中角色的数组。
如何查询数据库以搜索具有 Carpenter、Plumber、Hair Stylist 角色之一的用户?
更新:这是我提出的查询:
SELECT `users`.`id`
FROM `users`
WHERE
`users`.`id` IN
(
SELECT `user` FROM `users_roles` WHERE `role` IN ( 1, 2, 3 )
)
GROUP BY `users`.`id`
这是实现这一目标的最佳方式吗?还是这必然会导致某些服务器过载?