笨。哪个sql有多个值

时间:2014-05-07 12:23:06

标签: php sql codeigniter

我有内容,我想通过品牌名称和权限ID进行过滤,然后显示它。

我的问题是: 当我发送一个值为$ permission时,它工作正常。但是当用户有多个permission_id时,它就无法工作。

WHERE permission_id = 1,2,3;

我的选择查询存在问题:

笨:

$this->db->select('*');
$this->db->from('content');
$this->db->where('brand_name', $brand);
$this->db->where('permission_id', $permission);

SQL:

SELECT * FROM `content` WHERE `brand_name` = $brand_name AND `permission_id` = $permission;

$ brand&的print_r $ permission看起来像这样:

Hyundai
1,10,11,2,3,4,5,6,7,8,9

我希望我能够为某人提供足够的信息来帮助我。

谢谢。

1 个答案:

答案 0 :(得分:3)

要针对多个值测试字段,您的SQL应该不像:

WHERE permission_id = 1, 2, 3;

我不知道你的permission_id字段是什么样的,但我想你的情况应该是:

WHERE permission_id IN (1, 2, 3);

尝试where_in

$this->db->where_in('permission_id', $permission);

其中$permission是包含权限的数组(不是以逗号分隔的字符串)。

如果$permission是字符串,请使用explode

$this->db->where_in('permission_id', explode(',', $permission));