mysql - 根据 information_schema 中的 column_type 更改选择值

标签 mysql

好的,我会尽快完成这件事。下面我有一个选择,显示了所有具有 tinyint 数据类型的列名称。对于下面返回的数据,我需要编写一个从 my_table 中选择的封闭查询,并更改 SELECT 数据的输出,我怀疑是通过使用 CASEtinyint0 时为“否”,1 为"is"。

    SELECT 
        COLUMN_NAME
    FROM
        INFORMATION_SCHEMA.COLUMNS
    WHERE
        table_name = 'my_table'
    AND DATA_TYPE = 'tinyint'

谢谢!

最佳答案

您在示例中的查询:

create table a ( i tinyint, b char(5));

SELECT 
        COLUMN_NAME,
        case  DATA_TYPE 
        when 'tinyint' then 'Yes' 
                       else 'No' 
        end    
    FROM
        INFORMATION_SCHEMA.COLUMNS
    WHERE
        table_name = 'a';

Results

已编辑因为OP已经失去了信心。

嗨,大佬,相信我,你不想要!好吧...欢迎来到动态 SQL 的阴暗面:

create table a ( i tinyint, b char(5));
insert into a values (1,'si'),(0,'no');
SELECT @a := 
        concat( 
          'select ', 
          group_concat( 
            case  DATA_TYPE 
            when 'tinyint' then concat(
                                 'if( '       ,
                                 COLUMN_NAME           ,
                                 ' = 0, \'No\', \'Yes\' )'
                                )
                           else COLUMN_NAME            
            end                      
          ),
          ' from ',
          table_name ,
          ';'
        )
    FROM
        INFORMATION_SCHEMA.COLUMNS
    WHERE
        table_name = 'a';    
PREPARE stmt FROM @a;
EXECUTE stmt;

Results

| IF( I = 0, 'NO', 'YES' ) |  B |
---------------------------------
|                      Yes | si |
|                       No | no |

关于mysql - 根据 information_schema 中的 column_type 更改选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12849149/

相关文章:

mysql - 将 Angular 与数据库中的动态数据绑定(bind)

php - 使用单个提交按钮将 html 数据保存在两个不同的 mysql 表中

mysql - 多个数据库上的单个 MySQL 查询

mysql - 为什么mysql第一次select或不更新时会创建读 View

mysql - 制作 MySQL 表

MYSQL 加速查询

mysql - 如何按列具有特定值的组求和

php - 如何从mysql数据库中获取保存为数组的数据

mysql - SpringApplication.run() 加载整个数据库

mysql - 由于 "TIMESTAMP with implicit DEFAULT value is deprecated"错误,我无法启动 Mysql 5.6 服务器?