MySQL テーブルから 1 つを除くすべての列を取得する
テーブルから特定の列を取得する必要がある状況が多く発生します。 MySQL は、強力な SELECT ステートメントを通じてデータを柔軟に取得できます。ただし、特定の列を除くすべての列が必要なシナリオも考えられます。目的の列を手動で指定する代わりに、より効率的なアプローチを採用できます。
動的 SQL と準備されたステートメントの組み合わせを利用して、指定された列を除外する SELECT クエリを動的に生成できます。方法は次のとおりです:
動的 SQL 文字列を構築します:
SET @sql = CONCAT('SELECT ', (SELECT REPLACE(GROUP_CONCAT(COLUMN_NAME), '<columns_to_omit>,', '') FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '<table>' AND TABLE_SCHEMA = '<database>'), ' FROM <table>');
ステートメント:
PREPARE stmt1 FROM @sql;
準備されたものを実行しますステートメント:
EXECUTE stmt1;
置換: