我正在尝试从名为“blog”的表中选择具有正确部门ID的行。 department_id字段看起来像'1,4,5'。现在,如果站点编号1,4或5查询他们应该获得该帖子,因为他们的号码在该字段中。但我遇到了麻烦。这是我的代码,所以非常感谢任何帮助。
SELECT * FROM news WHERE draft = '1' AND department_id IN ($id) ORDER BY id DESC
答案 0 :(得分:1)
表名为blog
或news
?
让我们说$id=3;
SELECT * FROM news WHERE draft = 1 AND $id IN (department_id) ORDER BY id DESC
或者您也可以使用
SELECT * FROM news WHERE draft = 1 AND find_in_set('$id', cast(department_id as char)) > 0 ORDER BY id DESC
答案 1 :(得分:0)
这不会很好地扩展,但您可以尝试:
SELECT *
FROM news
WHERE draft = '1' AND
(department_id = 1
OR department_id = 4
OR department_id = 5)
ORDER BY department_id DESC;
答案 2 :(得分:0)
什么是$ id?如果$ id是数组,则需要make string例如
$id = array(1,4,5);
$ids = implode(',', $id);
mysql_query("SELECT * FROM news WHERE draft = '1' AND department_id IN ($ids) ORDER BY id DESC");