mysql - 如何对 mysql 结果集应用过滤器

标签 mysql filter where-clause resultset

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

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)

搜索特定记录的查询仅应用于标题和网址,我想检索标题或网址中包含“newclip”的所有记录。

从 my_schema.data 中选择*,其中标题如“%newclip%”或网址如“%newclip%”;

使用上面的查询,我得到了 url 或标题中包含 newclip 的所有记录

现在我想在此结果集上应用过滤器,可以使用categoryid、labelid、datetime、ispublic、values等过滤器对其应用。

如何过滤这样的结果集, 任何帮助将不胜感激,谢谢

最佳答案

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

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

关于mysql - 如何对 mysql 结果集应用过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27142191/

相关文章:

sql-server - 如何对 SQL Server 中的 IN 或列表进行 LIKE

mysql - 如何获取有关 MySQL 连接为何出现 ECONNREFUSED 的更多信息?

angularjs - Angular ng 重复过滤器 : ¿How to specify filter fields?

sql - 带有 SQL : No row returned when Where clause specified 的 Excel VBA

elasticsearch - 如何在Elasticsearch中过滤掉超过一击的东西?

ruby-on-rails - 按状态过滤轮胎结果

html - 松散搜索,例如这样 "htlm"就会找到 "html5"

php - Laravel 5.3,似乎无法配置使用哪个数据库?

mysql - MYSQL 中按字母顺序排列的最短和最长字符串?

Mysql Concat正在显示字节数组