gpt4 book ai didi

mysql - 一个表中的 COLUMN NAME 和 COLUMN COMMENT 以及另一个表中的 COLUMN VALUE。如何?

转载 作者:行者123 更新时间:2023-11-30 21:55:07 28 4
gpt4 key购买 nike

我有一个名为 tbl_mainsheet7 的表,创建方式如下:

pk_mainsheet  client_id  project_id  mainsheet_id  project_cat  EA_WTRESRVD  EA_WTRESRV  EA_FEEASBT
------------ --------- ---------- ------------ ----------- ----------- ---------- ----------
1 111 222 333 3 0 0 0
2 11 22 33 3 0 0 0

MySQL INFORMATION_SCHEMA.COLUMNS 查询 tbl_mainsheet7 是这样创建的:

SELECT `COLUMN_NAME`, `COLUMN_COMMENT` FROM INFORMATION_SCHEMA.COLUMNS WHERE `TABLE_NAME` = 'tbl_mainsheet7'

..返回这个:

COLUMN_NAME    COLUMN_COMMENT                                        
------------- ------------------------------------------------------
pk_mainsheet
client_id
project_id
mainsheet_id
project_cat
EA_WTRESRVD EMERGENCY SERVICE CALL
EA_WTRESRV EMERGENCY SERVICE CALL AFTER HRS
EA_FEEASBT ASBESTOS TEST FEE

我怎样才能...

SELECT COLUMN_NAME, COLUMN_VALUE, COLUMN_COMMENT FROM ... WHERE...

也许加入?真是抓耳挠腮。

更新

所以我让它工作,但只针对一个预定的列。如何使用变量使其动态化?

比如用与 COLUMN_NAME 相关的变量替换 WTRESRVD

SELECT COLUMN_NAME, (SELECT EA_WTRESRVD FROM tbl_mainsheet7 WHERE client_id = '111') AS COLUMN_VALUE, COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'tbl_mainsheet7'

最佳答案

我已经采用了 this answer 中的解决方案根据您的需要进行一些更改:1)我将 pk_mainsheet 作为目标表中行的标识符 2)我发现 @sql 变量存在长度问题,结果似乎存在限制,当您需要更多时现在表 tbl_mainsheet7 中的列。希望对您有所帮助。

SET @sql = NULL;

SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'select pk_mainsheet, ''',
c.column_name,
''' as COLUMN_NAME, ',
c.column_name,
' as COLUMN_VALUE, ''',
c.column_comment,
''' as COLUMN_COMMENT from tbl_mainsheet7'
) SEPARATOR ' UNION ALL
'
) INTO @sql
FROM information_schema.columns c
where c.table_name = 'tbl_mainsheet7'
and c.column_name <> 'pk_mainsheet'
order by c.ordinal_position;
-- INTO @sql

SET @sql
= CONCAT('select COLUMN_NAME,COLUMN_VALUE,COLUMN_COMMENT
from
(', @sql, ') x WHERE Pk_mainsheet = 1 ');


PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

关于mysql - 一个表中的 COLUMN NAME 和 COLUMN COMMENT 以及另一个表中的 COLUMN VALUE。如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45533422/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com