【发布时间】:2020-01-17 08:15:43
【问题描述】:
我正在使用 codeigniter,并且我在表名 submit 的列 (tags_json) 上有一个数字列表(例如 ['1', '2', '12', '42']),我想检查数字(例如 '2 ') 在tags_json,为了显示数据行的内容。
我试过的代码是:
$this->db->select('*', FALSE);
$this->db->where("JSON_CONTAINS(tags_json,'[2]'");
$Query = $this->db->get('submit');
echo $Query->num_rows();
结果是:
错误号:1064 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以了解在第 3 行的 '' 附近使用的正确语法
SELECT * FROM
submitWHERE JSON_CONTAINS(tags_json,'[2]' 为空 文件名:控制器/Home.php 行号:281
在 CI 中的情况如何?
【问题讨论】:
-
尝试将参数 null、false 作为第二个和第三个
-
您缺少用于关闭
JSON_CONTAINS()调用的括号。应该是$this->db->where("JSON_CONTAINS(tags_json,'[2]')"); -
试试
this->db->where("JSON_CONTAINS(tags_json,'[2]')", NULL, FALSE); -
@GMB 我给出这个错误:
Error Number: 1305 FUNCTION grsd1_db.JSON_CONTAINS does not exist SELECT * FROM 'submit' WHERE JSON_CONTAINS(tags_json,'[2]') IS NULL -
您使用的是哪个版本的 MySQL?如果我没记错的话,
JSON_CONTAINS()是在 5.7 中添加的。
标签: php mysql json codeigniter