yuk*_*kti 5 mysql datatypes mysql-workbench
我正在尝试BOOLEAN在 mysql 工作台中使用 EDIT TABLE添加一列,但它会TINYINT在应用更改时自动更改为。
我怎样才能得到列BOOLEAN?
根据标准 SQL,MySQL 不支持真正的布尔值。它分别使用整数值 1 和 0 表示真和假。它确实支持关键字true和false,但这些被映射到整数值。
mysql> SELECT true, false;
+------+-------+
| TRUE | FALSE |
+------+-------+
| 1 | 0 |
+------+-------+
Run Code Online (Sandbox Code Playgroud)
它们确实被映射到整数:
mysql> SELECT true + 10;
+-----------+
| true + 10 |
+-----------+
| 11 |
+-----------+
Run Code Online (Sandbox Code Playgroud)
这确实意味着 MySQL 中的某些表达式更简单,例如计算某个值为真的行就像布尔表达式的 SUM() 一样简单,条件为真时为 1,否则为 0。
SELECT SUM(name = 'bill') FROM table;
Run Code Online (Sandbox Code Playgroud)
标准 SQL 不支持将布尔值用作整数,并且需要更详细的内容:
SELECT COUNT(CASE name WHEN 'bill' THEN 1 END) FROM table;
Run Code Online (Sandbox Code Playgroud)
正如其他答案已经指出的那样,您可以使用数据类型别名,BOOL但它会立即被替换为TINYINT(1)(MySQL 对其他数据类型执行类似的操作,例如REAL和SERIAL)。
| 归档时间: |
|
| 查看次数: |
46906 次 |
| 最近记录: |