You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从SQL读取数据时如何将tinyint转换回boolean类型?

将MySQL中tinyint类型的watched字段转换为布尔值查询

表结构

CREATE TABLE MOVIES (
  movie_id INTEGER NOT NULL AUTO_INCREMENT,
  title VARCHAR(50) NOT NULL,
  watched BOOLEAN NOT NULL,
  PRIMARY KEY (movie_id)
);

当前查询结果

执行select * from movies;得到:

+----------+-------+---------+
| movie_id | title | watched |
+----------+-------+---------+
|        1 | bo    |       0 |
|        2 | NEW   |       0 |
|        3 | NEW 2 |       0 |
+----------+-------+---------+

问题需求

实际存储时watched字段是tinyint类型,需要在查询时自动将其转换为布尔值(0→false,非0→true),无需手动遍历结果转换,目标是把{movie_id: 1, title: 'bo', watched: 0}转为{movie_id: 1, title: 'bo', watched: false}。

解决方案

方法1:使用CASE语句

通过条件判断直接返回布尔值:

SELECT 
  movie_id,
  title,
  CASE WHEN watched = 0 THEN FALSE ELSE TRUE END AS watched
FROM movies;

方法2:使用IF函数

用MySQL内置的IF函数简化转换逻辑:

SELECT 
  movie_id,
  title,
  IF(watched = 0, FALSE, TRUE) AS watched
FROM movies;

方法3:利用布尔隐式转换

利用MySQL的布尔规则(0为假,非0为真),通过比较运算直接生成布尔结果:

SELECT 
  movie_id,
  title,
  watched <> 0 AS watched
FROM movies;

当watched为0时,watched <> 0返回FALSE;非0时返回TRUE,完全符合需求。

内容的提问来源于stack exchange,提问作者boshao13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 06:25:19