mysql - 使用模式搜索 Json (MYSQL Regex)

标签 mysql regex json

我在项目中遇到问题...它就像一个实验或 idk...它是一个带有 Json 的关系数据库,就像表单的响应

就像

Select details from mytable where id = 1

我得到了这样的东西

{
   "altitud":"1253,m.s.n.m",
   "tipo_vacacion":[
      "1"
   ],
   "ubicacion":{
      "scalar":"1"
   },
   "area":{
      "scalar":"800"
   },
   "huespedes":{
      "scalar":"4"
   },
   "acompanamiento":{
      "scalar":"1"
   },
   "departamento":{
      "scalar":"26"
   },
   "municipio":{
      "scalar":"Socorro"
   },
   "direccion":{
      "scalar":"Carrera....Calle"
   },
   "encargado":{
      "scalar":"Hernando Marquez"
   },
   "encargado_telf":{
      "scalar":"3158895585"
   },
   "traslado_km":{
      "scalar":"0"
   },
   "traslado_tiempo":{
      "scalar":""
   },
   "acceso_inmueble":{
      "0":"0"
   },
   "clima":{
      "scalar":"1"
   },
   "servicios":{
      "0":"0",
      "1":"1",
      "2":"2",
      "3":"4",
      "4":"7",
      "5":"8"
   },
   "actividades":{
      "scalar":"Cocina, Hamacas, Caminatas por el jard\u00edn, Retiros de Silencio."
   },
   "cultura":{
      "scalar":"Museo Casa de la Cultura del Socorro.\r\nTeatro Municipal, Catedral."
   },
   "ecodestinos":{
      "0":"1",
      "1":"10",
      "2":"11"
   },
   "cobertura_celular":{
      "0":"0",
      "1":"1",
      "2":"2",
      "3":"3"
   },
   "seguridad":{
      "0":"41",
      "1":"41",
      "2":"41",
      "3":"41",
      "4":"41"
   },
   "matricula":{
      "scalar":"000000000000"
   },
   "una_semana":{
      "scalar":"0"
   },
   "medio_mes":{
      "scalar":"1"
   },
   "recicla":{
      "0":"0",
      "1":"1",
      "2":"2",
      "3":"3"
   },
   "energia_limpia":{
      "scalar":"en Complementaci\u00f3n."
   },
   "manejo_aguas":{
      "scalar":"En an\u00e1lisis."
   }
}

他们希望我创建一个“喜欢”查询来了解类似的内容

Select id from mytable where details like '"servicios":%"1":"1"%"2":"2"%"3":"4"%"4":"7"'

(顺便说一句,该查询不起作用......)

乍一看很简单,但是,您注意到“标量”的东西了吗?有时他们对我说:该元素不在值上,而是在键上,但我们不确定它通常在哪里,所以,您需要向我们展示两者

这就是我来这里的原因,因为我花了 1 周的时间尝试(我解决了获取所有表并在 php 上创建函数的问题,但现在他们想要使用 mysql...)

请帮帮我

最佳答案

试试这个:

SELECT * FROM `mytable` 
WHERE  `details`  REGEXP  
'"servicios":\{[ [.newline.]]*"0":"0",[ [.newline.]]*"1":"1",[ [.newline.]]*"2":"2",[ [.newline.]]*"3":"4",[ [.newline.]]*"4":"7",[ [.newline.]]*"5":"8"[ [.newline.]]*\}'

http://dev.mysql.com/doc/refman/5.1/en/regexp.html#operator_regexp

关于mysql - 使用模式搜索 Json (MYSQL Regex),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21371271/

相关文章:

python - 如何匹配字符后面出现的字符串(如果存在),否则不应匹配任何内容

正则表达式匹配,非常简单 :

javascript - 如何在 JSON 对象中组合多个键值?

android - 将 json 数据的值存储到 arraylist 并填充 View 持有者

php - 使用池的在线聊天

MySQL:根据if条件更新行

PHP 减少数据库上的口是心非连接

mysql - sql选择对同一个表的多个引用

mysql - 在亚马逊上; Ubuntu;无法使用 crontab 重启 mysql

javascript - 使文本难以通过自动方式解析