2017-12-05 3 views
1

mysqlクエリであるパラメータを使用してストアドプロシージャを記述でき、ストアドプロシージャはクエリのカラム名を返しますか?例えばクエリのMySqlカラム名

私がプロシージャを呼び出す:

コールセレクタ(「ユーザーからの選択*」)

、手順は列名を返します。 information.schemaは簡単ですが、もっと複雑なクエリとエイリアスがあるのでしょうか?

答えて

0

は解決

CREATE DEFINER=`admin`@`localhost` PROCEDURE `selector`(
    IN `sql_query` VARCHAR(50)) 
LANGUAGE SQL 
NOT DETERMINISTIC 
CONTAINS SQL 
SQL SECURITY DEFINER 
COMMENT '' 
BEGiN 
drop table if exists tmp111; 
SET @sql = concat('create table tmp111 as ', sql_query); 
PREPARE stmt FROM @sql; 
Execute stmt; 
describe tmp111; 
END 

次に好きそれを呼び出す見つかり:

call selector('select name as n, email as e from users') 
+0

SET @sql 'でSQLを'制限を0 '追加を... '。これは、非常に大きなテーブルの作成を防ぎます –

関連する問題