MySQL选择多行,列值为

时间:2016-02-11 15:51:30

标签: php mysql codeigniter

我的表有列tag_id和item_id,

---------------------
| tag_id  | item_id |
---------------------
|    1    |    2    |
|    2    |    2    |
|    4    |    2    |
|    3    |    5    |
|    5    |    7    |
|    11   |    5    |
---------------------

例如,如果输入tag_id = 1,2,4

,我想返回item_id = 2

查询应该是什么样的?

我正在使用Codeigniter。

4 个答案:

答案 0 :(得分:0)

试试这个:

select * from table where tag_id in (1,2,4)

答案 1 :(得分:0)

如果要查找仅返回一个单元格值的Msql查询,可以使用以下命令:

if( csvList.map(x => x(0).toInt) == someInteger)

答案 2 :(得分:0)

试试这段代码。会帮助你

  $this->db->select('item_id'); 
    $this->db->from('tblNAME');   
    $where = "tag_id='1'  OR tag_id='2' OR tag_id='2 ";
    $this->db->where($where);
    return $this->db->get()->result();

答案 3 :(得分:0)

谢谢所有答案,但遗憾的是不适合使用。因为我希望它返回项目id = 2,如果标签id = 1,2,4。

如果我们使用IN(1,2,4),它将返回标签为1或2或4的项ID。

最后我弄清楚SQL查询应该是

Select *, COUNT(item_id) AS id_count 
FROM TABLE_NAME 
WHERE tag_id IN(1,2,4) 
GROUP BY item_id HAVING id_count = 3

因此,以一般形式表达它,我们只需用标签id数组的大小替换3。