sql >> Databáze >  >> RDS >> Mysql

Získat název sloupce dynamicky podle konkrétní hodnoty řádku

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 funguje jistě..

Fuj!

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

PS:Nahraďte table s názvem vaší tabulky dbname s názvem vaší databáze a value s vaší hodnotou



  1. C# Chyba MySQL Počet sloupců neodpovídá počtu hodnot na řádku 1

  2. proč tento dotaz mysql nefunguje?

  3. Jak přidat výchozí omezení do existujícího sloupce na serveru SQL Server

  4. Tabulka podregistru vrací prázdnou sadu výsledků pro všechny dotazy