Mysql
 sql >> база данни >  >> RDS >> Mysql

MySql таблица във формат JSON

Опитайте това:

SET @schema = 'test_db';
SET @table = 'test';

SELECT CONCAT(
  'SELECT CONCAT(TRIM(TRAILING ', QUOTE(','), ' FROM CONCAT(', QUOTE('{'), ',', 
  GROUP_CONCAT(QUOTE('"'), ',', QUOTE(COLUMN_NAME), ',', 
  QUOTE('"'), ',', QUOTE(':'), ',', QUOTE('"'), ',', COLUMN_NAME, ',', 
  QUOTE('"'),',', QUOTE(',')),
  ')), ''}'') FROM ', @table
)
INTO @qry FROM 
  (SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS c
  WHERE TABLE_SCHEMA = @schema AND TABLE_NAME = @table) t;

SELECT @qry;
PREPARE stmt FROM @qry;
EXECUTE stmt;

Горната заявка генерира таблични данни във формат JSON. С помощта на заявката можете да подготвите съхранена процедура, като вземете имена на база данни и таблици като входни параметри и да попълните вашите данни. Ако искате да изключите някои от колоните в таблица, просто променете заявката, която избира данни от INFORMATION_SCHEMA база данни като SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS c WHERE TABLE_SCHEMA = @schema AND TABLE_NAME = @table AND COLUMN_NAME NOT IN (**columns to exclude**) .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql има ли еквивалент на @@ROWCOUNT като в mssql?

  2. Основен пул за DB връзки с Java и Tomcat 7

  3. Rails създава schema_migrations - Mysql2::Грешка:Посоченият ключ беше твърде дълъг

  4. присвояване на потребителска променлива на mysql с count(*)

  5. MySQL брои сложни резултати от заявка?