我正在尝试在选择特定类型的列的同时获取数据
我正在做的是:
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'table'
AND table_schema = 'DB'
AND column_name LIKE 'f%'
这个查询会给我col名称,有选项可以同时获取那些colum的数据吗?或者我需要获取cols的数组并进行另一个查询?假设我想获取所有数据,这没关系 感谢。
答案 0 :(得分:0)
好的,如果你
因为我不认为还有另一种直接的做法。
答案 1 :(得分:0)
您可以使用动态sql。
来使用存储过程首先,您必须创建此存储过程:
CREATE PROCEDURE FetchColumns (IN pSchemaName char(50), IN pTableName char(50), IN pColumnLikeCondition char(50))
BEGIN
DECLARE v_cols char(200);
SELECT group_concat(COLUMN_NAME separator ' , ') INTO v_cols FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = pTableName
AND table_schema = pSchemaName
AND column_name LIKE pColumnLikeCondition;
SET @s = CONCAT('SELECT ',v_cols,' FROM ',pTableName );
PREPARE stmt FROM @s;
EXECUTE stmt;
END
最后,你所要做的就是调用它,就像这样:
call FetchColumns('DB', 'table', 'f%')