【问题标题】:CodeIgniter - use MySQL 5.7 JSON_CONTAINS functionCodeIgniter - 使用 MySQL 5.7 JSON_CONTAINS 函数
【发布时间】:2018-02-16 05:44:18
【问题描述】:

所以,我在表格的一列上有一个“白名单”国家/地区列表(例如['PT', 'US', 'UK', 'ES']),我想检查用户的国家/地区(例如“美国”)是否被列入白名单,以便向用户显示该行的内容。

我搜索并发现最好和最简单的方法是将列入白名单的列表编译为 JSON 数组,将列设为 JSON 类型并使用 MySQL 5.7+ 上的 JSON_CONTAINS 函数

但是,我不知道如何使用 CI 的数据库库来实现它。

如何使用 CI 的 DB 库来使用 MySQL 的功能?有没有比 JSON 数组更好的方法来实现这一点?

【问题讨论】:

  • 你在 mysql 中的 qery 也可以使用 $this->db->query('Your query') 执行。我想这会对你有所帮助。
  • 请添加更多详细信息,表格看起来像等等
  • @PankajSharma 是的,可以,但我想将它与其他 CI 参数合并。
  • @Gagantous 我想要的非常简单,我有一个受区域限制的东西列表,因此,对于每一行,都有一个国家代码列表,其中可以出现该内容。用户有一个国家,用用户的国家我想返回所有有用户国家的行。
  • 来自@PankajSharma 说,您可以使用 ci 库进行查询,codeigniter.com/userguide3/database/query_builder.html

标签: mysql json codeigniter


【解决方案1】:

你可以使用

$this->db->where("(JSON_CONTAINS(field,'[\"US\"]')) > ",0);

codeigniter where 子句需要一个运算符。如果我们提供一个操作符,codeigniter 将忽略IS NULL

【讨论】:

    猜你喜欢
    • 2017-11-01
    • 2019-02-04
    • 2023-03-18
    • 1970-01-01
    • 2020-01-14
    • 2021-03-07
    • 2017-09-01
    • 1970-01-01
    • 2019-01-24
    相关资源
    最近更新 更多