0

重複の可能性:
SQL は SELECT * [columnA を除く] FROM tableA? を使用して列を除外しますか?

私はテーブルを持っており、このテーブルには 30 列が含まれており、* が必要な列名のみを取得します。

私の質問は、残りの列名を避けるにはどうすればよいですか?

たとえば、MySQL で可能であれば結果が必要です。

SELECT *, AVOID('col_13,col_14') FROM `table`

AVOIDは MySQL の機能ではありません。

なぜ私はこれが欲しいのですか?ホームページに 20 列の名前しか必要としませんでしたが、最適化または短い方法が必要なため、このようなクエリは作成しません*

SELECT col_1,col_2,....col_20 FROM `table`

これは MySQL で可能です。

4

2 に答える 2

2

いいえ、できません。すべての必須フィールドを列挙する必要があります

于 2012-05-15T07:27:13.983 に答える
0

このクエリを試す

SET @SQL = CONCAT('SELECT ', (SELECT REPLACE(GROUP_CONCAT(COLUMN_NAME), 'col_13,col_14,', '') FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'table_name' ), ' FROM table_name');

PREPARE stmt1 FROM @SQL;
EXECUTE stmt1;
于 2012-05-15T09:30:44.777 に答える