Mysql Table - 创建比较其他列值的列?
Mysql Table - CREATE COLUMN that compares values of other columns?
无法在网络或 Mysql 文档中找到任何内容。我有一个 table 并希望最后一列显示一个 true/false 语句:
if (value_x === value_y)
这可能吗?
id | value_x | value_y | check_xy
---------------------------------
01 | 10| 10| true
02 | 11| 44| false
谢谢
使用 generated column.
这是一个演示:
mysql> create table mytable (id int primary key, value_x int, value_y int);
mysql> insert into mytable values (1, 10, 10), (2, 11, 44);
mysql> alter table mytable add column check_xy bool as (value_x = value_y);
mysql> select * from mytable;
+----+---------+---------+----------+
| id | value_x | value_y | check_xy |
+----+---------+---------+----------+
| 1 | 10 | 10 | 1 |
| 2 | 11 | 44 | 0 |
+----+---------+---------+----------+
阅读 https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html 了解更多信息。
请注意,这是 MySQL 5.7 中引入的功能。如果您使用旧版本 MySQL,则必须先升级。
无法在网络或 Mysql 文档中找到任何内容。我有一个 table 并希望最后一列显示一个 true/false 语句:
if (value_x === value_y)
这可能吗?
id | value_x | value_y | check_xy
---------------------------------
01 | 10| 10| true
02 | 11| 44| false
谢谢
使用 generated column.
这是一个演示:
mysql> create table mytable (id int primary key, value_x int, value_y int);
mysql> insert into mytable values (1, 10, 10), (2, 11, 44);
mysql> alter table mytable add column check_xy bool as (value_x = value_y);
mysql> select * from mytable;
+----+---------+---------+----------+
| id | value_x | value_y | check_xy |
+----+---------+---------+----------+
| 1 | 10 | 10 | 1 |
| 2 | 11 | 44 | 0 |
+----+---------+---------+----------+
阅读 https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html 了解更多信息。
请注意,这是 MySQL 5.7 中引入的功能。如果您使用旧版本 MySQL,则必须先升级。