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

Създайте обобщен резултат с една заявка

Това е стандартна обобщена заявка:

  SELECT uc.uut_sn,
         MAX(CASE 
               WHEN uc.characteristic_name = 'char_name_1' THEN uc.characteristic_value 
               ELSE NULL 
             END) AS char_name_1,
         MAX(CASE 
               WHEN uc.characteristic_name = 'char_name_2' THEN uc.characteristic_value 
               ELSE NULL 
             END) AS char_name_2,
         MAX(CASE 
               WHEN uc.characteristic_name = 'char_name_3' THEN uc.characteristic_value 
               ELSE NULL 
             END) AS char_name_3,
    FROM unit_characteristics uc
GROUP BY uc.uut_sn

За да го направите динамичен, трябва да използвате Динамичният SQL синтаксис на MySQL, наречен Prepared Statements . Изисква две заявки - първата получава списък с characteristic_name стойности, така че можете да свържете подходящия низ в CASE изразите, както виждате в моя пример като крайната заявка.



  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-connector python 'IN' оператор, съхранен като списък

  2. Как да използвам $db от друг .php към друг .php клас, използвайки ООП?

  3. Как да стартирам Spring-Boot приложение, без да зависи от базата данни?

  4. Как да инсталирам com.mysql.jdbc.Driver Не можах да намеря драйвер с име на клас:com.mysql.jdbc.Driver?

  5. Извличане на идентификатора на всеки израз INSERT в много заявка