比较两个布尔值时是否可以使用OR操作数?
使用 MYSQL 5+
前任。
ON DUPLICATE KEY UPDATE
table1.3_InMarket = (table1.3_InMarket OR b.3_InMarket),
如果新旧之间存在一个,我想将 True 值设置为该字段。
这两个字段都设置为 tinyint(1) aka Bool。
您可以使用一个简单的表格来测试行为。
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;
这是值得检查的,以便您作为开发人员更好地理解它,但这应该是完全可能的。