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

Вземете динамично името на колоната по специфична стойност на ред

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;

Това работи със сигурност...

Уф!

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

PS:Заменете table с името на вашата таблица ,dbname с вашето db име и value с вашата стойност



  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. MySQL – Изчакайте секунди с помощта на SELECT SLEEP()

  3. MySQL:Разширете диапазона от време в нови редове

  4. Как мога да използвам транзакции в моята MySQL съхранена процедура?

  5. Вмъкване на списък в моята база данни с помощта на Python