【问题标题】:How to retrieve data from json column using codeigniter?如何使用codeigniter从json列中检索数据?
【发布时间】:2020-01-23 16:29:13
【问题描述】:

我是 codeigniter 的初学者。我正在尝试从我的 sql 数据库的 json 列中检索数据 db结构是这样的

DB NAME : order
——————————————————------------------------------------------
 Id    | description
——————————————————————————————————---------------------------
1      |  {“pc”: [{ “brand”: “name”}], “mouse”: [“LL”, “DC”]}
————————————————————————————————————--------------------------

例如,我想检索所有具有 mouse = dc 的实例

$data = $this->db->select($select)->from(‘order’)
            ->where(“mouse”, “DC”) ->get()->result();   

【问题讨论】:

  • 仅使用 mysql 查询 SELECT id FROM order WHERE JSON_EXTRACT(description, "$.mouse[1]") = 'DC',它可以工作,但如果我写 SELECT id FROM @987654325 @ WHERE JSON_EXTRACT(description, "$.mouse[*]") = 'DC' 它不起作用。无论如何,这个查询使用 codeigniter 有不同的语法

标签: mysql json codeigniter


【解决方案1】:

嗯,我以前从来没有这样工作过,但是在用户 ascsoftw 答案的帮助下,我发现 this section on the MySQL documentation 可能会有所帮助,I think this is even better for you case

然后,您的查询可能看起来像这样(对不起,如果我弄错了,就像我说的,以前从来没有这样工作过):

SELECT Id FROM order where description->>"$[1][1]";

据我了解,这将检索鼠标的所有 Id(数组索引 1)以及 DC 的描述(数组索引 1 以及)。

如果没有帮助,您可以继续阅读 MySQL 的文档。

顺便说一句,值得一提的是,您在 CodeIgniter 中有几种方法可以进行查询,如果 CI 查询构建器不适应您想要做的事情,您可以随时按照以下示例进行操作:

    $query = "SELECT * FROM table_name";

    $result = $this->db->query($query);

    if($result->num_rows() != 0)
    {
       foreach($result->result() as $row)
      {
        return something
      }
    } 
    else
    {
       return false
    }

如果这对您有帮助,请告诉我,以便我为遇到相同问题的任何人提供正确答案。

【讨论】:

    猜你喜欢
    • 2020-02-04
    • 1970-01-01
    • 2022-01-23
    • 2015-08-22
    • 1970-01-01
    • 2015-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多