mysql 列显示出来_如何在MySQL中显示某些列(不是全部)?

为了显示某些列,请使用NOT IN并设置您不想显示的那些列。让我们首先创建一个表。以下是查询-mysql> create table student_Information

-> (

-> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,

-> StudentName varchar(50),

-> StudentAge int,

-> StudentAddress varchar(100),

-> StudentAllSubjectScore int

-> );

以下是查询以显示有关上表的描述-mysql> desc student_Information;

这将产生以下输出-+------------------------+--------------+------+-----+---------+----------------+

| Field                  | Type         | Null | Key | Default | Extra          |

+------------------------+--------------+------+-----+---------+----------------+

| StudentId              | int(11)      | NO   | PRI | NULL    | auto_increment |

| StudentName            | varchar(50)  | YES  |     | NULL    |                |

| StudentAge             | int(11)      | YES  |     | NULL    |                |

| StudentAddress         | varchar(100) | YES  |     | NULL    |                |

| StudentAllSubjectScore | int(11)      | YES  |     | NULL    |                |

+------------------------+--------------+------+-----+---------+----------------+

5 rows in set (0.00 sec)

以下是仅显示一些列的查询-mysql> SHOW COLUMNS FROM student_Information where field not

in('StudentAddress','StudentAllSubjectScore');

这将产生以下输出-+-------------+-------------+------+-----+---------+----------------+

| Field       | Type        | Null | Key | Default | Extra          |

+-------------+-------------+------+-----+---------+----------------+

| StudentId   | int(11)     | NO   | PRI | NULL    | auto_increment |

| StudentName | varchar(50) | YES  |     | NULL    |                |

| StudentAge  | int(11)     | YES  |     | NULL    |                |

+-------------+-------------+------+-----+---------+----------------+

3 rows in set (0.00 sec)

如果您想要将值转换为,可以使用 MySQL 的 PIVOT 操作或者自定义查询语句实现。下面是两种方法的介绍: 1. 使用 PIVOT 操作 MySQL 并没有原生的 PIVOT 操作,但是您可以使用 CASE WHEN 语句模拟它。例如,假设您有一个表格叫做 orders,其包含了订单的信息,如下所示: | order_id | customer_id | order_date | order_amount | |----------|-------------|------------|--------------| | 1 | 100 | 2022-01-01 | 100 | | 2 | 100 | 2022-01-02 | 200 | | 3 | 200 | 2022-01-01 | 300 | | 4 | 200 | 2022-01-03 | 400 | 如果您想要将每个客户的订单金额分别作为一进行显示,可以使用以下查询语句: ``` SELECT customer_id, SUM(CASE WHEN order_date = '2022-01-01' THEN order_amount END) AS '2022-01-01', SUM(CASE WHEN order_date = '2022-01-02' THEN order_amount END) AS '2022-01-02', SUM(CASE WHEN order_date = '2022-01-03' THEN order_amount END) AS '2022-01-03' FROM orders GROUP BY customer_id; ``` 这会将结果转换为以下形式: | customer_id | 2022-01-01 | 2022-01-02 | 2022-01-03 | |-------------|------------|------------|------------| | 100 | 100 | 200 | 0 | | 200 | 300 | 0 | 400 | 2. 使用自定义查询语句 另一种方法是使用自定义查询语句,使用 JOIN 操作将相同客户 ID 的订单金额连接起来,例如: ``` SELECT o1.customer_id, o1.order_amount AS '2022-01-01', o2.order_amount AS '2022-01-02', o3.order_amount AS '2022-01-03' FROM orders o1 LEFT JOIN orders o2 ON o1.customer_id = o2.customer_id AND o2.order_date = '2022-01-02' LEFT JOIN orders o3 ON o1.customer_id = o3.customer_id AND o3.order_date = '2022-01-03' WHERE o1.order_date = '2022-01-01'; ``` 这会将结果转换为以下形式: | customer_id | 2022-01-01 | 2022-01-02 | 2022-01-03 | |-------------|------------|------------|------------| | 100 | 100 | 200 | NULL | | 200 | 300 | NULL | 400 | 请注意,这里使用了 LEFT JOIN 操作,因为某些客户可能没有在某些日期下有订单。同时,由于使用了多个 JOIN 操作,这种方法在数据量较大的情况下可能会导致性能问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值