Я храню данные json в одном из полей таблицы, и у меня возникают проблемы с использованием REGEXP, чтобы вернуть правильную запись В принципе, она соответствует другим атрибутам в объекте JSON, что она не должнаMySQL regexp search JSON array
Пример JSON
{
"data": {
"en": {
"containers": [
{
"id": 1441530944931,
"template": "12",
"columns": {
"column1": [
"144",
"145",
"148"
],
"column2":[
"135",
"148",
"234"
]
}
}
],
"left": "152",
"right": "151"
},
}
}
Теперь я хотел бы искать массив столбцов против определенного значения (т.е. 148)
Сейчас меня есть ниже запрос,
WHERE (w.`_attrs` REGEXP '"column[0-9]":.*\\[.*"148".*\\]'
, который прекрасно работает Однако, если изменить значение от 148 до 152 или 151, он также работает По какой-то причине запрос соответствует атрибуту левого и права, а также, но это не является желательно
Любая помощь?
Благодаря
Вы имеете в виду, что на основании приведенных данных образца, если вы согласитесь на '152', он вернет положительный результат? –
Исправить. Он также будет соответствовать 151. В принципе, он будет соответствовать любому ключу, значение которого заключено в «». – Thomas
Как будто он полностью пропускает «столбец [0-9]» :. part – Thomas