從MySQL 表中檢索除一列之外的所有列
問題:
在MySQL中資料庫,如何檢索特定列中的特定列之外的所有列
答案:
雖然這看起來像是一個簡單的任務,但MySQL沒有提供內建方法來排除SELECT 語句中的特定欄位。但是,使用動態 SQL 和預存程序的組合,可以實現此功能。
解決方案:
按照以下步驟檢索除 in 中的一列之外的所有列一個 MySQL表:
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 ;
CALL get_all_columns_except('table_name', 'database_name', 'excluded_column_name');
參數取代:
將「table_name」、「database_name」和「ex cluded_column_name」替換為實際值CALL get_all_columns_except('employees', 'company_db', 'last_name');
以上是如何在 MySQL 中選擇除一列之外的所有欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!