sg552

Рейтинг
77
Регистрация
04.01.2010

admak, Спасибо, идея интересная, но в итоге count + having сворачивает базу в трубочку. И это при том, что база в данный момент наполнена на четверть. Видимо прийдется делать n-запросов и уже средствами php реализовывать

Мы работаем конкретно с этой таблицей.

sort_id - сортировка

value_id - номер сортировки, закрепленной за product_id

нужно в один запрос получить product_id, который удовлетворит сразу трем условиям. Проблема в том, что это разные строки, и AND и OR тут не канают. UNION возвращает результат если выполнится хотябы одно условие из трех

Chukcha:
WHERE ( sort_id =5 AND value_id IN ( 1, 2, 3, 5, 7, 11, 10, 13, 15, 17, 20 ))
OR
( sort_id =3 AND value_id IN ( 1, 2, 3, 5, 7, 9, 15, 10 ))
OR
( sort_id =1 AND value_id IN ( 3, 4, 11, 14, 15, 13, 16, 2 ))

OR вернет результат если выполнится хоть 1 сортировка, мне же нужно чтобы выполнились все

>>Что то не понял, а почему не так?

Посмотрите на структуру базы, это первое что мне пришло в голову. Но не может быть sort_id одновременно быть равным 5 и 3 и 1

>>Ну вы же их сами составили или в чём проблема то?

Один красивый запрос

Нашел аналог UNION, который работает по обратному принципу (возвращает результат если выполнились все условия) - INTERSECT, но он есть везде кроме mysql =(

Нужно составить запрос, который сможет выбрать только те product_id, которые удовлетворяют сразу нескольким условиям (например):

WHERE ( sort_id =5 AND value_id IN ( 1, 2, 3, 5, 7, 11, 10, 13, 15, 17, 20 ))

WHERE ( sort_id =3 AND value_id IN ( 1, 2, 3, 5, 7, 9, 15, 10 ))

WHERE ( sort_id =1 AND value_id IN ( 3, 4, 11, 14, 15, 13, 16, 2 ))

Так надеюсь понятней будет.

SergUA:
умно. но без толку апать топик не просил тебя.

Раз вы такой умный, зачем создаете такие темы? цмс вероятней всего самопис, если оченб интересно можете обратиться к разработчикам под видом клиента, думаю они вам что-то да расскажут. А за ссылку спасибо, улыбнуло :)

Только парсить стринг и инт. Если же стринговая часть не интересует совсем, можно попробовать приведение к инту - (int) и intval()

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

>>ЗЫ (по теме): есчо раз, опыт показал, что подобная автоматизация в 80-90% случаях вызывает лишь раздражение юзверя и приводит к обратному от ожидаемого результату. такой вот незатейливый эмпирический факт.

Ну юзверей к счастью планируется не больше десятка моих друзей

>>теперь в ходу термин "чистый jQuery"

будьте внимательней

>>народ как то справляется с многостраничными "содержаниями"

мне ненужно содержание, мне нужно просто прододжить читать дома с того места, где я остановился на работе\планшете\много других девайсов

>>модальные окна

вы видно вообще не поняли сути задачи :)

Я минималист до мозга костей, и если есть возможность сделать что-то на чистом js/jQuery, остаюсь приверженцем этого варианта.

>>портянка разбивается на семантические параграфы

это займет куда больше времени. а если параграфов будет хх-сят? получится портянка бутстрапа

Приведу конкретный пример чтобы закрыть тему, читал книгу, потерял то место где остановился. Перечитывать портянку второй раз уже откровенно бесит

http://www.modernlib.ru/books/sharma_robin_s/monah_kotoriy_prodal_svoy_ferrari/read/

Мне проще дернуть её себе и почитывать в свободное время с комфортом и уютом :) тем более давно хотел сделать собственную мини-библиотеку

>>По таймеру запоминать куки, привязанные к location и к тексту, по отношению к top окна.

>>в бд позицию на странице для определенного пользователя

То что вы советуете, это сохранение х координаты относительно начала. При банальном изменении ширины блока\размера шрифта\межстрочного интервала все детит в тар-тарары.

>>Положение текста не высчитывать, а высчитывать, например толко положение параграфов/абзацев.

Уже тоже пришли к этой мысли спасибо. После загрузки строится таблица номер абзаца - позиция Х относительно начала, при скроле обсчитываем смещение относительно начала документа - высота хидера. Вариант третий к сожалению не подойдет т.к. на 20 страницах текста он уже дает нехилую "погрешность". Спасибо за ответы, задача попервой показалась действительно интересной, но быстро решилась :)

Всего: 548