Другой цвет фона для левой и правой половины отделения

SELECT userid
FROM UserRole
WHERE roleid IN (1, 2, 3)
GROUP BY userid
HAVING COUNT(DISTINCT roleid) = 3;

любому читающему это: мой ответ прост и прост, и получил 'принятое' состояние, но пойдите, читает ответ данный @cletus. Это имеет намного лучшую производительность.

Justing, думающий вслух, другой способ записать самосоединение, описанное @cletus:

SELECT t1.userid
FROM userrole t1
JOIN userrole t2 ON t1.userid = t2.userid
JOIN userrole t3 ON t2.userid = t3.userid
WHERE (t1.roleid, t2.roleid, t3.roleid) = (1, 2, 3);

Это могло бы быть легче считать для Вас, и MySQL поддерживает сравнения кортежей как этот. MySQL также знает, как использовать закрывающие индексы разумно для этого запроса. Просто выполните его до EXPLAIN и посмотрите "Используя индекс" в примечаниях для всех трех таблиц, что означает, что это читает индекс и не должно даже касаться строк данных.

я выполнил этот запрос более чем 2,1 миллиона строк (дамп данных в июле Переполнения стека для PostTags) использование MySQL 5.1.48 на моем MacBook, и это возвратило результат через 1,08 секунды. На достойном сервере с достаточной памятью, выделенной innodb_buffer_pool_size, это должно быть еще быстрее.

11
задан Christoph 14 August 2009 в 11:27
поделиться

3 ответа

Добавьте фоновое изображение с двумя цветами во внешний блок и разрешите браузеру масштабировать его (вместо мозаичного).

Каждый цвет должен заполнять ровно 50% ширины изображение, чтобы цвета никогда не просачивались с обеих сторон.

Возможно, даже поместите изображение абсолютно позади внутреннего div.

Идеи, как растянуть изображение, см. в этом вопросе: CSS Background Repeat

6
ответ дан 3 December 2019 в 07:13
поделиться

Вы можете иметь два блока снаружи, а затем иметь по одному из ваших блоков в каждом. По правому краю и по левому краю соответственно. Примерно так:

-----------------------------------------------------
(div)                       | (div)
           _________________|_________ 
           |(div)           |  (div)  |
           |                |         |
           |                |         |
<- white   |     white      |  green  |   green  ->
           |                |         |
           |                |         |
           |________________|_________|
                            |
------------------------------------------------------
1
ответ дан 3 December 2019 в 07:13
поделиться

Я бы поместил внутрь этого блока два других блока и дал им соответствующие размеры и цвета фона

0
ответ дан 3 December 2019 в 07:13
поделиться