SQL запрос

litledi

Новичок
SQL запрос

здрасте всем, такой вопрос есть табличка в которой есть поля itemid,text,img,list_id,content_type_id в которой хранится инфа о товаре с определённым itemid в четырёх строках с разными content_type_id, задача состоит в следующем посчитать сколько всего товаров есть с указанными хар-ками (определённые list_id) , запрос который мне выводит их все в зависимости от указанных характеристик я составил, (если кто-то лучше предложит решение, буду признателен), но есть желание как то указывать диапазон строк размер которого я может быть изменен с помощью указанной страницы(page) и кол-вом товаров на странице(step) в связи с чем надо бы узнать предварительно общее число подходящих по критериям поиска товаров
запрос выводящий подходящие товары:
SELECT i_id,text,price,img FROM content WHERE((content_type_id='5' AND text <> '' AND list_id='29') OR (content_type_id='6' AND (list_id='4' OR list_id='5' OR list_id='6' OR list_id='13')) OR (content_type_id='7' AND (list_id='14' OR list_id='15' OR list_id='16' OR list_id='17' OR list_id='18' OR list_id='19' OR list_id='20' )) OR (content_type_id='8' AND (list_id='38' OR list_id='63' OR list_id='64' OR list_id='65' OR list_id='66'))) GROUP BY i_id HAVING COUNT(i_id)=4 ;

и ещё такой вопрос как сделать в таком запросе чтобы выводилась бы строка с конкретным content_type_id, содержащим название товара, потому как в других строках поле text просто не используется
 

Dogarev

Guest
А по корекнее спрашивать неполучается?
 

litledi

Новичок
по моему я достаточно всё объяснил как посчитать общее число i_id, чтобы потом в запросе задать LIMIT start,end

а если непонятно надо спросить что непонятно и указать на мою дурь если таковая имеется, я не обижусь
 

litledi

Новичок
не фига ты не понял
инфа о товаре хранится в четырёх строках таблицы контент, во всех четырёх строках имеем одинаковые i_id и разные content_type_id, нужно чтобы инфа была полной т.е должны быть всегда четыре строки с четырьмя разными content_type_id, COUNT(i_id) с указаным GROUP BY i_id, даст число строк таблицы (1, 2, 3 или 4) с инфой о товаре,смотря сколько пользователь забил, должен полностью, поэтому и используется HAVING COUNT(i_id)=4, отсекая товары у которых инфа не полная, т.е. нет какой-то одной или нескольких строк с определённым content_type_id, мне нужно посчитать сколько всего товаров есть с какими-то определёнными критериями поиска, чтобы потом в запросе ограничить число искомых за раз, потому как теоритически товаров может быть дофига, хотя и вряд ли, а выбирать кусок определённой длины,из уже найденных не есть правильно

надеюсь, что щас попонятнее написал
 

crocodile2u

http://vbolshov.org.ru
Возможно, стоит задуматься о том, чтобы переорганизовать структуру хранения данных в более удобную?
 

litledi

Новичок
структура удобная, почти во всём, единственная проблема сложные каталоги, где товары со множеством характеристик, а если вложеность большая, одна характеристика зависит от другой, а та от третьей и т.д. то вообще жопа, щас переделывать особенно времени нет, не знаю просто сколько будет длиться запрос если там товаров например 1000 и соответственно строк, подходящих под запрос будет 4000
 

Мутник

Новичок
а не проще структуру в отдельной таблице `tree` хранить, а тут ТОЛЬКО товары???

P.S. ты не заметишь разницы... вот если будет миллион записей....
 

litledi

Новичок
структура базы заточена под сайты среднего размера, весь контент хранится в одной таблице в виде строк содержащих текст, картинку, цену, и т.д. с идентификатором записи к которой эта строка относится, таким образом запись(i_id) состоит от одного до нескольких "кирпичиков"(тип контента), каждый из которых может содержать текст, картинку цену и т.д., есть таблица записей и таблица разделов к которым эти записи относятся, имея всё это можно создавать контент любой сложности, но есть свои минусы, без них никак, не всегда удобно для работы скаталогом товаров, если товар имеет сложную структуру и надо организовывать поиск товаров как в данном случае, по всем характеристикам товара

может я напрасно в принципе огород горожу, и волнуюсь что если число товаров будет слишком большое кол-во, что вряд ли, но вопрос в принципе остаётся можно или нет при такой структуре определить число товаров
 
Сверху