1
mysqlクエリであるパラメータを使用してストアドプロシージャを記述でき、ストアドプロシージャはクエリのカラム名を返しますか?例えばクエリのMySqlカラム名
私がプロシージャを呼び出す:
コールセレクタ(「ユーザーからの選択*」)
、手順は列名を返します。 information.schemaは簡単ですが、もっと複雑なクエリとエイリアスがあるのでしょうか?
mysqlクエリであるパラメータを使用してストアドプロシージャを記述でき、ストアドプロシージャはクエリのカラム名を返しますか?例えばクエリのMySqlカラム名
私がプロシージャを呼び出す:
コールセレクタ(「ユーザーからの選択*」)
、手順は列名を返します。 information.schemaは簡単ですが、もっと複雑なクエリとエイリアスがあるのでしょうか?
は解決
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')
SET @sql 'でSQLを'制限を0 '追加を... '。これは、非常に大きなテーブルの作成を防ぎます –