今天在MySQL5.7.21数据库中tinyint(1)或tinyint(1) unsigned 字段值为1,读取出来为true的问题。

MySQLyog查询正常,结果如下:

MySQL5.7.21数据库中tinyint(1)或tinyint(1) unsigned 字段值为1,通过MyBatis读取出来为true的问题的完美解决方案

MyBatis查询结果为:

MySQL5.7.21数据库中tinyint(1)或tinyint(1) unsigned 字段值为1,通过MyBatis读取出来为true的问题的完美解决方案

原因:MySQL中没有boolean类型,所以会用到tinyint类型来表示。

在SQL语句中执行*1操作即可。

SELECT 
  sp.parentid AS parentid,
  sp.id AS id,
  sp.name AS 'name',
  sp.level*1 AS 'level',
  sp.url AS url,
  sp.icon AS icon 
FROM
  `sys_page` sp 
WHERE sp.`status` = 1 
GROUP BY sp.`id` 
ORDER BY sp.sort 


备注:

level类型即为tinyint,值为0或者1或者2

为了取出0或者1或者2,执行*1操作,即可得到原值。

相关文章: