【问题标题】:comprae value in JSON_TYPE in mysql比较mysql中JSON TYPE中的值
【发布时间】:2017-01-03 12:01:04
【问题描述】:

我的数据库表中有一个字段 interet,它有一个 json 数组,就像你在这张图片中看到的那样。

我想使用 Mysql 查询检查一个或两个值是否在此字段中。 我试图做这个查询:

SELECT * FROM customers c WHERE c.interet IN ('Voyage','Technologie','Mode')

但我一无所获

【问题讨论】:

  • 那不是 json_array
  • 它不是 json。寻找字符串或文本类型数据
  • 表中的不是 JSON,而是列中的逗号分隔值。您不应该将其保存在列中。请参阅stackoverflow.com/a/41215681/267540stackoverflow.com/a/41305027/267540
  • aaah 好的,如果我把它做成 json 数组就可以了?
  • 不是 json 数组,但可以像这样使用:其中 c.interet like '%Voyage%' or c.interet like '%Technologie%' or c.interet like '%Mode%' group by id

标签: php mysql json


【解决方案1】:

由于它不是json USE like operator

    SELECT * FROM customers c WHERE 
    c.interet LIKE '% Voyage %' OR 
    c.interet LIKE '% Technologie %' OR 
    c.interet LIKE '% Mode %' 

【讨论】:

  • 是的,这行得通,如果你有几十万行,让你的服务无响应
  • 是的,我同意这一点
【解决方案2】:

上面的格式不是json而是varchar。更新您的问题并发布您的完整 sql 查询

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    相关资源
    最近更新 更多