поиск в MySQL таблице

R
На сайте с 22.12.2009
Offline
94
382

есть таблица со след данными

первый элемент

название поля/значение

ish/3;4;6;8

iсh/1;2;4;48

второй элемент

название поля/значение

ish/13;16;19;38

iсh/4;7;22;33

третий элемент

название поля/значение

ish/5;12;33;59

iсh/6;13;17;23

ну и тд

вообщем надо найди все записи у которых (например) есть в поле ich значение 4 (иногда надо искать и по двум/трем полям)

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

то есть, например возьмем первый элемент

ish/3;4;6;8

iсh/1;2;4;48

получим соответственно

ish iсh

3 1

3 2

3 4

3 48

4 1

4 2

4 4

4 48

6 1

6 2

6 4

6 48

8 1

8 2

8 4

8 48

это конечно хорошо

но при большой количестве 'составных' записей и большом количестве значений

временная таблица распухнет как на дрожжах да и поиск по ней будет долго идти

может кто сталкивался с таким или может что подсказать

спасибо

---------- Добавлено 27.03.2013 в 01:15 ----------

вот кусочек таблицы (вид из phpmyadmin)

bay_ebook
На сайте с 28.05.2010
Offline
111
#1

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

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


SELECT id from news where id_category REGEXP '[[:<:]]1[[:>:]]';
Нужен прогер на php+mysql+понимание чужего кода? (/ru/forum/540660) Вам сюда PHP-шаман (http://php-shaman.pw/)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий