MySQL视图确实返回TINYINT,但只有在查询该类型的列时才返回。所有其他整数表达式都返回BIGINT。
我跑了
mysql --column-type-info
以获取有关结果的调试信息。
mysql> create table t ( b bool );
mysql> create or replace view v as select b from t;
mysql> select b from v;
Field 1: `b`
Catalog: `def`
Database: `test2`
Table: `v`
Org_table: `v`
Type: TINY
Collation: binary (63)
Length: 1
Max_length: 0
Decimals: 0
Flags: NUM
mysql> select NOT b from v;
Field 1: `NOT b`
Catalog: `def`
Database: ``
Table: ``
Org_table: ``
Type: LONGLONG
Collation: binary (63)
Length: 1
Max_length: 0
Decimals: 0
Flags: BINARY NUM
mysql> create or replace view v (b) as select NOT b from t;
mysql> select b from v;
Field 1: `b`
Catalog: `def`
Database: ``
Table: `v`
Org_table: `v`
Type: LONGLONG
Collation: binary (63)
Length: 1
Max_length: 0
Decimals: 0
Flags: BINARY NUM