Intereting Posts
значения split из запроса http-запроса angularjs (данные) ClassNotFoundException: Попытка загрузить класс «TwigExtension» из глобального пространства имен Загрузка zip-файла и rar-файла, не работающего в codeigniter Есть ли в PHP встроенный отладочный журнал, например Ruby on Rails logger.info (), в файл development.log? quickblox javascript sdk один к одному видеочат Является ли mysql_real_escape_string достаточным для инъекции SQL? У некоторых RewriteCond влияют несколько правил Хотите разбить строку в mysql, используя SUBSTRING_INDEX как расширить модуль авторизации пользователя kohana Установка глобальной переменной в Magento, GUI? Symfony2: как установить URL-адрес хоста / базы в сценариях CLI Как разблокировать файл после загрузки файла AWS S3 Helper? Зависимость Ад – как передать зависимости глубоко глубоко вложенным объектам? Использование php filter_var с mysql_real_escape_string WAMP: не удалось открыть поток: нет такого файла или каталога

Есть ли запрос MySQL, который может кодировать JSON именно таким образом?

У меня есть 2 таблицы типа

work_assets ----------------------------------------------------- id | asseturl | previmgurl | carid ----------------------------------------------------- 1 | "pic1.jpg" | "pic2.jpg" | 1 2 | "pic3.jpg" | "pic4.jpg" | 1 3 | "pic5.jpg" | "pic6.jpg" | 2 . | ... | ... | . . | ... | ... | . cases ----------------------------------------------------- id | ... | carid | ... ----------------------------------------------------- 1 | ... | 1 | ... 2 | ... | 2 | ... 3 | ... | 69 | ... . | ... | ... | ... . | ... | ... | ... 

и я надеюсь, что я смогу выполнить некоторый тип запроса Q который может привести меня к JSON, который в основном представляет собой таблицу cases с отношением «один ко многим» от ее carid colummn к связанным с ним asseturl и previmgurl , например

 [ { id : 1, ..., assetinfo: [ { asseturl : "pic1.jpg", previmgurl: "pic2.jpg"}, { asseturl : "pic3.jpg", previmgurl: "pic4.jpg"} ], ... }, { id : 2, ... }, { id: 3, ... }, . . . ] 

Настроить:

 var cases = <?php $Q = ????; echo json_encode($wpdb->get_results($Q)); ?> 

Это возможно?

IMHO вам действительно не нужно делать это json-преобразование на стороне mysql, потому что оно не очень эффективно и почти не имеет смысла.

Но просто чтобы показать, что это возможно (в противоположность мнению @bannmatt), вот мой подход:

http://sqlfiddle.com/#!9/6bffb/7

 SELECT c.*, CONCAT('assetinfo : [ ', COALESCE( GROUP_CONCAT( CONCAT("{ asseturl: ", wa.asseturl, ', previmgurl: ', wa.previmgurl," }") ), ''), ' ]') FROM cases c LEFT JOIN work_assets wa ON c.carid = wa.carid GROUP BY c.id 

К сожалению, я не думаю, что вы сможете получить один SQL-запрос из своей базы данных, который будет сериализоваться в JSON так, как вы хотите, потому что описываемая вами структура многомерна, т. Е. Массив, вложенный в другой массив.