首頁 > 資料庫 > mysql教程 > 如何在 MySQL 中選擇除一列之外的所有欄位?

如何在 MySQL 中選擇除一列之外的所有欄位?

Susan Sarandon
發布: 2024-12-30 02:42:09
原創
494 人瀏覽過

How to Select All Columns Except One in MySQL?

從MySQL 表中檢索除一列之外的所有列

問題:

在MySQL中資料庫,如何檢索特定列中的特定列之外的所有列

答案:

雖然這看起來像是一個簡單的任務,但MySQL沒有提供內建方法來排除SELECT 語句中的特定欄位。但是,使用動態 SQL 和預存程序的組合,可以實現此功能。

解決方案:

按照以下步驟檢索除 in 中的一列之外的所有列一個 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. 呼叫預存程序:
  2. 預存程序建立後,您可以調用它與以下內容指令:

參數取代:

將「table_name」、「database_name」和「ex cluded_column_name」替換為實際值
CALL get_all_columns_except('employees', 'company_db', 'last_name');
登入後複製

範例:要擷取「company_db」資料庫中「employees 」表中除「last_name」列之外的所有列,您可以呼叫預存程序如下:此方法允許您選擇表中的所有列,自動省略指定列,即使表有大量列。

以上是如何在 MySQL 中選擇除一列之外的所有欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板