我有一个快速问题。我在数据库中有下表。mysql查询排除重复记录
CREATE TABLE IF NOT EXISTS `wp_agp_settings_data` (
`ID` int(50) NOT NULL AUTO_INCREMENT,
`agp_user_id` int(10) NOT NULL,
`agp_order_id` int(10) NOT NULL,
`agp_blog_id` int(10) NOT NULL,
`agp_keywords` varchar(255) NOT NULL,
`agp_keywords_date` varchar(20) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
INSERT INTO `wp_agp_settings_data` (`ID`, `agp_user_id`, `agp_order_id`, `agp_blog_id`, `agp_keywords`, `agp_keywords_date`) VALUES
(1, 2, 5, 4, 'keyword1', '1369872000'),
(2, 2, 0, 6, 'keyword2', '1369872000'),
(3, 2, 0, 3, 'masterkey', '1369872000'),
(4, 2, 0, 4, 'testkey', '1369872000');
我想只得到不同的agp_blog_ids。 到目前为止,我这样做:
SELECT agp_blog_id
FROM wp_agp_settings_data
WHERE
agp_user_id = 2
AND (agp_keywords NOT LIKE "%keyword1%" OR agp_keywords NOT LIKE "%key1%")
AND agp_keywords_date BETWEEN 1369872000 AND 1370044800
GROUP BY agp_blog_id
不过,我想,因为在所有一个记录已经匹配的条件排除结果“4”。
一些帮助将不胜感激。
你想要的输出是什么? –
它应该只返回6和3,因为所有“4”匹配的日期范围 –
我不明白为什么4不应该检索,日期都是一样的。 “日期范围内的所有4场比赛”是什么意思? – Fabio