我在项目中遇到问题...它就像一个实验或 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/