ホームページ >データベース >mysql チュートリアル >MySQL で 1 つを除くすべての列を選択するには?

MySQL で 1 つを除くすべての列を選択するには?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-30 02:42:09495ブラウズ

How to Select All Columns Except One in MySQL?

MySQL テーブルから 1 つの列を除くすべての列を取得する

質問:

MySQL 内データベースで、特定の列を除くすべての列を取得するにはどうすればよいですか? table?

答え:

これは簡単な作業のように思えるかもしれませんが、MySQL には SELECT ステートメントで特定のカラムを除外するための組み込みメソッドが提供されていません。ただし、動的 ​​SQL とストアド プロシージャを組み合わせて使用​​すると、この機能を実現できます。

解決策:

次の手順に従って、次の手順に従って、次の 1 つの列を除くすべての列を取得します。 MySQL テーブル:

  1. ストアドテーブルの作成プロシージャ:
DELIMITER //

CREATE PROCEDURE get_all_columns_except(
    IN table_name VARCHAR(255),
    IN database_name VARCHAR(255),
    IN excluded_column VARCHAR(255)
)
BEGIN

    -- Dynamically build the SELECT statement
    SET @sql = CONCAT('SELECT ', (SELECT REPLACE(GROUP_CONCAT(COLUMN_NAME), excluded_column, '') FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = table_name AND TABLE_SCHEMA = database_name), ' FROM ', table_name);

    -- Prepare the statement for execution
    PREPARE stmt1 FROM @sql;

    -- Execute the statement
    EXECUTE stmt1;

END //

DELIMITER ;
  1. ストアド プロシージャを呼び出す:

ストアド プロシージャが作成されたら、呼び出すことができます。それは次のようになりますコマンド:

CALL get_all_columns_except('table_name', 'database_name', 'excluded_column_name');
  1. パラメータ置換:

「table_name」、「database_name」、および「excluded_column_name」を実際のものに置き換えます

例:

「company_db」データベースの「employees」テーブルの「last_name」列を除くすべての列を取得するには、

CALL get_all_columns_except('employees', 'company_db', 'last_name');

この方法では、テーブル内のすべての列を選択し、指定された列を自動的に省略できます。テーブルに多数の列がある場合でも。

以上がMySQL で 1 つを除くすべての列を選択するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。