实战演练 | 在 MySQL 中选择除了某一列以外的所有列
在MySQL中,如果你想选择表中除了特定列以外的所有列,你可以使用SHOW COLUMNS
语句配合NOT IN
条件来实现。但是,由于SHOW COLUMNS
的输出不是一个表格,我们需要用到其他方式来获取列的信息。
以下是一个实例代码,演示如何选择除了特定列以外的所有列:
-- 假设我们有一个名为my_table的表,我们想要排除名为excluded_column的列
-- 首先,我们获取除了excluded_column以外的所有列名
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'your_database_name' AND TABLE_NAME = 'my_table'
AND COLUMN_NAME != 'excluded_column';
-- 然后,我们可以使用上面查询的结果来构建一个包含所有列的SELECT语句
SELECT GROUP_CONCAT(DISTINCT
CONCAT('`', COLUMN_NAME, '`')
ORDER BY COLUMN_NAME SEPARATOR ', ')
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'your_database_name' AND TABLE_NAME = 'my_table'
AND COLUMN_NAME != 'excluded_column'
INTO @columns;
-- 最后,我们可以使用@columns变量来构建并执行实际的SELECT语句
SET @query = CONCAT('SELECT ', @columns, ' FROM `my_table`');
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
请注意,你需要替换your_database_name
、my_table
和excluded_column
为你实际的数据库名、表名和列名。
这个例子使用了GROUP_CONCAT
函数来生成一个包含所有列名的字符串,然后使用PREPARE STATEMENT
来执行这个字符串作为SQL查询。这样做可以动态地构建并执行SQL语句,从而实现需求。
评论已关闭