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