1
我只想得到那些有2行的ID,一行有site_id = 1
,另一个。可能检查一个数字是否在一个GROUP_CONCAT
我试过两次加入表,但查询时间太长。因此,我现在要做的是连接站点标识,并将行限制为只有1处于此连接值中的行,并且其中包含28。但是,我无法让它工作。这是做与site_id是一个数字和我的concat值,即sites
是一个字符串?我如何确保这两个值都在我的连接字符串中?
SELECT *, COUNT(id) as num_ids
FROM (
SELECT id, CONVERT(GROUP_CONCAT(`site_id`) USING utf8) as `sites`, MAX(`Date_Added`) as `date_added_lb`
FROM `product_location` pl
WHERE `site_id` =1 OR `site_id` = 28
GROUP BY id
) as t
WHERE t.`date_added_lb` >="2013-02-27"
AND 1 IN(`sites`)
AND 28 IN(`sites`)
AND num_ids=2
这可以工作,我试图避免使用虽然因为它可以显着减缓查询。 另一件事是,我需要能够检查网站28的行的日期是'> = 2013-02-27'' – Nicola 2013-03-04 13:59:44
@Nicola Ok - 用新的WHERE子句更新。 – 2013-03-04 14:04:46
太棒了。谢谢。非常聪明的那里的where子句。 – Nicola 2013-03-04 14:10:44