【问题标题】:MySQL Select Multiple Row with column valueMySQL选择具有列值的多行
【发布时间】:2016-02-11 15:51:29
【问题描述】:

我有一个表有列 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。

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    如果您正在寻找只返回一个单元格值的 Msql 查询,您可以使用以下内容:

    SELECT DISTINCT item_id FROM tableName WHERE tag_id IN (1, 2, 4)
    

    【讨论】:

      【解决方案2】:

      试试这个代码。会帮助你

        $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】:

        试试这个:

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

        【讨论】:

          【解决方案4】:

          谢谢大家的回答,可惜不适合使用。因为如果标签 id = 1,2,4,我希望它准确地返回项目 id = 2。

          如果我们使用 IN(1,2,4),它将返回标签 ID 为 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
          

          所以,用一般的形式表达,我们简单的把3换成tag id数组的大小。

          【讨论】:

            猜你喜欢
            • 2013-09-25
            • 2012-12-06
            • 1970-01-01
            • 1970-01-01
            • 2021-10-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多