mysql查询的更好选择
我有一个表test1,它的数据如下所示: 现在我不想从test1表中选择2012年生产年份中天数>0的记录,所以我使用了以下查询:mysql查询的更好选择,mysql,Mysql,我有一个表test1,它的数据如下所示: 现在我不想从test1表中选择2012年生产年份中天数>0的记录,所以我使用了以下查询: select * from test1 where id in (select id from test1 where pyear=2012 and (days<=0 or days is null)) OR id in (select id from test1 where pyear!=2012); 但是当解释上述查询时,它显示了从属子查询 , 有没有
select * from test1
where id in (select id from test1 where pyear=2012 and
(days<=0 or days is null)) OR id in (select id from test1 where pyear!=2012);
但是当解释上述查询时,它显示了从属子查询
,
有没有更好的方法来编写这个查询
提前谢谢
select * from test1 where days <= 0 && pyear >= 2012
这将起作用这将完成以下工作:
select * from test1 where (pyear=2012 and (days<=0 or days is null)) or pyear<>2012
对。有。工会将帮助你:
SELECT * FROM test1 WHERE pyear=2012 AND (days<=0 OR days IS NULL)
UNION
SELECT * FROM test1 WHERE pyear!=2012
一些MySQL旧版本低于4.1,我想不能使用索引,这意味着在使用或在差异列上进行完全扫描,即使有索引列。在这种情况下,应该使用UNION。此查询仅选择2012条记录,但我也希望选择2013条记录
SELECT * FROM test1 WHERE pyear=2012 AND (days<=0 OR days IS NULL)
UNION
SELECT * FROM test1 WHERE pyear!=2012