我的表有列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。
答案 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。