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

mysql заявка за динамично конвертиране на данни от редове в колони

Просто не можете да имате статичен SQL израз, връщащ променлив брой колони. Трябва да изграждате такова изявление всеки път, когато броят на различните области се промени. За да направите това, първо изпълнявате

SELECT DISTINCT District FROM district_details;

Това ще ви даде списък с областите, където има подробности. След това изграждате SQL израз, повтарящ предишния резултат (псевдокод)

statement = "SELECT name "

For each row returned in d = SELECT DISTINCT District FROM district_details 
    statement = statement & ", SUM(IF(District=""" & d.District & """,1 ,0)) AS """ & d.District & """" 

statement = statement & " FROM district_details GROUP BY name;"

И изпълнете тази заявка. След това ще трябва да обработвате в кода си обработката на променливия брой колони



  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

  2. Как да изберете групирани редове само с NULL стойности?

  3. Не може да се свърже с някой от посочените MySQL хостове при проверка на връзката

  4. Къде да промените стойността на low_case_table_names=2 в windows xampp

  5. Как да получа ID на последния актуализиран ред в MySQL?