mysql - 在视图中使用“CAST (1 AS BIT)”
问题描述
这里的 MySQL 菜鸟,来自多年的 MS SQL-Server 经验。
我正在创建一个带有BIT
列的视图,我知道这是布尔/是-否列的正确类型。
该BIT
值是使用简单的内联IF
语句计算的。
CREATE VIEW view2 AS
SELECT
t.column2 ,
IF ( t.column2 IS NULL ,
CAST ( 1 AS BIT ) ,
CAST ( 0 AS BIT ) ) AS isColumn2Null
FROM table2 t ;
但是当我尝试执行此操作时,出现错误:
Incorrect parameters in the call to stored function `CAST`
为什么 MySQL 在这里给出存储函数错误?
MySQL 是否认为我正在定义存储函数?
到底是怎么回事?
显然BIT
MySQL 中的类型与 SQL-Server 的工作方式不同。
我试过CAST ( 1 AS BIT ( 1 ) )
了,但这只是给出了一个syntax error
没有细节的泛型。
解决方案
CAST()
无法转换为BIT
.
您可以通过将整数视为条件来模拟行为。
基本上改变这个:
CAST ( myval AS BIT )
到:
IF(myval, 1, 0)
推荐阅读
- mysql - 每个用户的 AWS RDS 数据库连接数
- python - 如何使用 python 替换丢失的布尔值?
- asp.net-mvc - 如何将模型绑定到 dxList 并允许多选?ASP.NET MVC
- google-apps-script - 我的自我调用解决方法有效还是巧合?
- c++ - pointer_traits typedefs 可以未定义吗?
- c++ - unique_ptr 作为通用处置对象
- aggregate - 拆分不连贯的聚集体
- php - 是否可以使用 php 从 parseplaform 从 GeoPoint 获取纬度和经度
- php - 将网站页面从域重定向到子域
- c++ - GNU MPFR 在精度高于 64 时给我完全相同的结果