Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Uzyskaj nazwę kolumny dynamicznie według określonej wartości wiersza

set @q= CONCAT('SELECT columns.column_name 
                from table inner 
                join information_schema.columns 
                on columns.table_schema = "dbname" 
                and columns.table_name = "table" 
                and ((',
                (SELECT GROUP_CONCAT(CONCAT('columns.column_name="',column_name,'"',' and table.',column_name,' = "value','"') SEPARATOR ' OR ')
                FROM INFORMATION_SCHEMA.COLUMNS 
                WHERE table_name = 'table'),
                '))');
prepare query from @q;
execute query;

To na pewno działa...

Uff!

Skrzypce:http://sqlfiddle.com/#!2/9420c/2/2

PS:Zastąp table z nazwą Twojej tabeli dbname z nazwą bazy danych i value z Twoją wartością



  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 porównuje ciąg DATE z ciągiem z pola DATETIME

  2. Czy występuje spadek wydajności, jeśli w tabeli jest zbyt wiele kolumn?

  3. wstawiaj dane z jednej tabeli do drugiej w mysql

  4. Jak odczytać ten plik tekstowy i wstawić do MySQL?

  5. Jak formatować liczby za pomocą przecinków w MySQL