我面临一个棘手的问题,因为我的表有两个不同的列,它们决定记录是否处于活动状态。(两个不同的列是因为同一个数据库一次又一次的变化,当然不是我。)
这些字段是bit
数据库中的类型。任何人都可以建议一个从表中获取记录的查询。
前任。从产品中选择 *(isActive = 0 或 isCancelled =1)
我面临一个棘手的问题,因为我的表有两个不同的列,它们决定记录是否处于活动状态。(两个不同的列是因为同一个数据库一次又一次的变化,当然不是我。)
这些字段是bit
数据库中的类型。任何人都可以建议一个从表中获取记录的查询。
前任。从产品中选择 *(isActive = 0 或 isCancelled =1)
不活动:
select * from product where isActive = 0 or isCancelled =1
积极的
select * from product where isActive = 1 and isCancelled =0
我认为这是编写此查询的好方法
select * from product where isActive = 1 and isCancelled = 0 -- Active records
select * from product where not (isActive = 1 and isCancelled = 0) -- Inactive records
我会选择计算值:
select *, (isActive = 1 and isCancelled = 0) as active
from product
或者更好的是创建一个视图来隐藏这种丑陋:
create view complete_product as
select *, (isActive = 1 and isCancelled = 0) as active
from product