AND条件(来自数组)

时间:2017-03-09 18:46:38

标签: php mysql

要从数据库填充下拉列表,我使用这样的简单查询。

SELECT *
FROM admin_users
LEFT JOIN account ON account_id = user_account_id
AND user_active = 1

现在我想用IN选项填充列表,只允许用户访问'area'

区域ID在数据库中序列化并获取我使用的数组

$bar = unserialize(base64_decode($user_areas));

现在,我喜欢在打开页面时,我只有用户下拉而不能访问区域。有一种方法可以直接从查询中过滤用户吗?

SELECT *
FROM admin_users
LEFT JOIN account ON account_id = user_account_id

>>>>> WHERE area_id IN ($foo) <<<<

AND user_active = 1

2 个答案:

答案 0 :(得分:0)

你必须“内爆”你的数组$ bar才能获得带ID的内联字符串,如下所示:

$bar = array(7, 9, 27, 44); // These numbers are Area IDs

然后使用implode()函数获取内联字符串:

$ inline = implode($ bar,',')

最后,在您的查询中连接:

select ...
>>>>> WHERE area_id IN ($inline) <<<<

答案 1 :(得分:0)

使用subqueries

SELECT *
FROM admin_users
LEFT JOIN account ON account_id = user_account_id
WHERE area_id IN (
    SELECT aria_id from `user_area_table` [where clause if needed]
)
AND user_active = 1