如何在mysql结果集上应用过滤器

时间:2014-11-26 05:50:01

标签: mysql filter where-clause resultset

我想在我的结果集上应用不同的过滤器,以便我可以检索过滤器的excat结果,并且没有必要每次这个过滤器都有一些值,它也可能包含null值,所以请使用这样的过滤器 下面是我的表

CREATE TABLE `data` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(45) DEFAULT NULL,
  `url` varchar(45) DEFAULT NULL,
  `categoryid` int(11) DEFAULT NULL,
  `labelid` int(11) DEFAULT NULL,
  `datetime` datetime DEFAULT NULL,
  `ispublic` int(11) DEFAULT NULL,
  `value` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=latin1;

INSERTed VALUES
INSERT INTO `my_schema`.`data`
(
`title`,
`url`,
`categoryid`,
`labelid`,
`datetime`,
`ispublic`,
`value`)
VALUES
('newclip','http://newclip/',1,1,'2014-11-21 10:40:49',1,3.5),
('newclip url','http://newclip/fisrt/',1,3,'2014-12-21 10:40:49',0,3),
('newclip123','http://newclip123/',2,1,'2014-11-20 10:40:50',1,3.5),
('clip','http://clip/',4,2,'2014-10-21 1:40:49',0,3.5),
('new','http://new/',5,3,'2014-11-25 10:50:49',0,2),
('music','http://newclip/mucis',1,2,'2014-12-21 10:40:49',1,3.5),
('newclip','http://newclip/',4,6,'2014-11-28 10:40:49',0,5),
('newclip','http://newclip/',6,7,'2014-11-21 10:40:49',1,3.5),
('newclip url','http://newclip/fisrt/',1,2,'2014-12-21 10:40:49',0,3),
('newclip123','http://newclip123/',2,1,'2014-11-20 10:40:50',1,3.5),
('clip','http://clip/',1,2,'2014-10-21 1:40:49',0,3.5),
('new','http://new/',1,2,'2014-11-25 10:50:49',0,2),
('music','http://newclip/movie',1,2,'2014-12-21 10:40:49',1,3.5),
('newclip','http://newclip/',1,2,'2014-11-28 10:40:49',0,5)
用于搜索特定记录的

查询仅应用于标题& url,我想要检索所有包含&newcip'标题或网址。

SELECT * FROM my_schema.data WHERE title LIKE'%newclip%'或者网址喜欢'%newclip%';

使用上面的查询我得到所有在url或title

中都有newclip的记录

现在我想在这个结果集上应用过滤器,过滤器可以使用categoryid,labelid,datetime,ispublic,values等来应用它。

如何过滤此类结果集, 任何帮助将不胜感激,谢谢

2 个答案:

答案 0 :(得分:1)

在外部查询中包含那些过滤器,这些过滤器将应用于内部查询获得的结果集。像

这样的东西
select * from
(
SELECT * FROM my_schema.data 
WHERE title LIKE '%newclip%' 
OR url LIKE '%newclip%'
) tab 
where categoryid = 3
or labelid = 4;

答案 1 :(得分:0)

Select * from 
    (SELECT * FROM my_schema.data WHERE title 
     LIKE '%newclip%' OR url LIKE '%newclip%') `temp_tbl` 
WHERE condition here...