在BOOL上使用OR操作数(tinyint(1))字段MYSQL

时间:2013-05-31 00:04:47

标签: mysql sql mysqli

比较两个布尔值时是否可以使用 OR 操作数?

使用MYSQL 5 +

实施例

ON DUPLICATE KEY UPDATE
table1.3_InMarket = (table1.3_InMarket OR b.3_InMarket),

如果新旧之间存在真值,我想将True值设置为

这两个字段都设置为tinyint(1)又名Bool。

2 个答案:

答案 0 :(得分:2)

您可以使用简单的表格测试行为。

drop table test;
create table test (
  n integer not null,
  tf boolean not null default false,
  primary key (n)
);
-- Starts false, set to true.
insert into test values (1, false);
insert into test values (1, false) on duplicate key update tf = (tf or true);
-- Starts false, does not set to true.
insert into test values (2, false);
insert into test values (2, false) on duplicate key update tf = (tf or false);
-- Starts true, set to true.
insert into test values (3, true);
insert into test values (3, true) on duplicate key update tf = (tf or true);
-- Starts true, does not set to false.
insert into test values (4, true);
insert into test values (4, true) on duplicate key update tf = (tf or true);

select * from test;

答案 1 :(得分:0)

这值得检查,以便您更好地将其理解为开发人员,但这应该是完全可能的。