Mysql WHERE 字段包含 JSON 变量

标签 mysql database json codeigniter

我有一个数据库,其中包含 json 字符串的归档 myfield:["2","4","1","6"] [“1”]。我想为此字段创建一个过滤器,并考虑使用以下方式查询它:

SELECT id FROM table_name WHERE myfield = '5' -> 此返回无法回显 id,因为 ["2","4","1 ","6"] 没有值 5。

SELECT id FROM table_name WHERE myfield = '1' -> return 可以回显 id-> 因为 -> 在归档 myfield 的 json 字符串中> 值为 1。

如何解决?我该怎么办?

我尝试过,但它对我不起作用:

从 table_name WHERE myfield = '1' 中选择 id

最佳答案

例如,要检查id=1,您可以执行以下操作

SELECT 1 as id
FROM table_name 
WHERE find_in_set('1', replace(myfield, '"', '')) > 0

您可以在代码中像这样使用它

$this->db->query("SELECT 1 as id 
                  FROM table_name 
                  WHERE find_in_set('1', replace(myfield, '\"', '')) > 0");

关于Mysql WHERE 字段包含 JSON 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15001889/

相关文章:

PHP:对键相同的子数组的所有值求和

database - 是否有充分的理由让数据库表没有整数主键?

android - 设备崩溃

python - 在 Python 中合并两个 JSON 字典?

php - 下拉列表中的 JSON 值显示 ID 号而不是数据库中的字符串

javascript - 循环 json 对象时出现问题

php - 几分钟后如何销毁 session

java - PDFbox arabic textnot show 从数据库 mysql 检索

php - MySQL:获取所有行进行搜索?

php - 如何从包含多个连接的 mysql 查询中获取 php 中的多维数组