MarriaDB 10.2 Запрос с JSON - PullRequest
       22

MarriaDB 10.2 Запрос с JSON

0 голосов
/ 08 мая 2018

У меня проблемы с запросом;

SELECT *, JSON_VALUE(cms_routing_data, "$.cms_routing_date.field") AS order_row FROM database.cms_routing WHERE cms_routing_module = 'events' AND cms_routing_data != '' AND order_row >= '2018-05-11' ORDER BY order_row ASC LIMIT 0,4

Моя база данных выглядит так;

CREATE TABLE `cms_routing` (
  `cms_routing_id` int(10) NOT NULL,
  `cms_routing_module` varchar(50) DEFAULT NULL,
  `cms_routing_data` longblob DEFAULT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Мои cms_routing_data выглядят так:

a:1:{s:16:"cms_routing_date";a:1:{s:5:"field";s:10:"2018-04-29";}}

PHPMyAdmin ответ;

#1054 - Onbekende kolom 'order_row' in where clause

Кто-нибудь имеет опыт работы с этим и может мне помочь?

1 Ответ

0 голосов
/ 10 мая 2018

Там, где две проблемы;

  1. Заменить order_row в предложении WHERE на соответствующие выражение, JSON_VALUE(cms_routing_data, "$.cms_routing_date.field").
  2. cms_routing_data не был допустимым JSON для MariaDB, он был сериализован.

Полезным инструментом был dbfiddle, чтобы выяснить это.

Благодаря @ sticky-bit и @ wchiquito.

...