从 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”和“excluded_column_name”替换为实际值
示例:
要检索“company_db”数据库中“employees”表中除“last_name”列之外的所有列,您可以调用存储过程如下:
CALL get_all_columns_except('employees', 'company_db', 'last_name');
这种方法允许您选择表中的所有列,自动省略指定列,即使表有大量列。
以上是如何在 MySQL 中选择除一列之外的所有列?的详细内容。更多信息请关注PHP中文网其他相关文章!