Mysql json

Это есть
выше как раз этот вариант же описывал? или нет?
А как потом, вытянуть из одной таблицы объявы связав их с справочником?
Код:
SELECT * FROM table1 as t1
WHERE filter_id=id
ну а айди фильтра у тебя уже будет на форме

если можно больше одного фильтра, то WHERE IN (1,2,3)
 
Код:
SELECT * FROM table1 as t1
WHERE filter_id=id
ну а айди фильтра у тебя уже будет на форме

если можно больше одного фильтра, то WHERE IN (1,2,3)
Если учитывать то что цвета не будет, просто обычный типы полей. буквально самые простые. эта идея имеет право на жизнь?
Или json mysql5.7 будет лучше?
 
Если учитывать то что цвета не будет, просто обычный типы полей. буквально самые простые. эта идея имеет право на жизнь?
будет жить, почему нет)
Или json mysql5.7 будет лучше?
если не критично, я бы попробовал Json)
 
Если учитывать то что цвета не будет, просто обычный типы полей. буквально самые простые. эта идея имеет право на жизнь?
Или json mysql5.7 будет лучше?
Не знаю как в json, но здесь поиск должен проходить быстро.
 
В общем появилось время вернулся к этой задаче
Не выходит сделать выборку по фильтрам
вот грубый пример
SELECT ad.*,f.* FROM table_ads as ad inner join table_filterads as f on f.id_ad=ad.id WHERE (id_filter=16 AND value_filter=34) AND (id_filter=17 AND value_filter=38)

table_ads - таблица с объявлениями
table_filterads - таблица с фильтрами для каждого объявления (id_ad - номер объявы, id_filter - айди фильтра, value_filter - значения фильтра)

Т.е у каждой объявы в table_filterads есть записи с фильтрами.
Помогите сделать фильтрацию, как только не пробовал, не выходит. все время или дубли выводятся или не происходит правильный фильтрация


наверное не понимаю основную логику работы :facepalm:

up
С одним фильтром работает, но по нескольким фильтрам не выходит сделать все равно

up2
В общем вроде решил, вышло что то типо такого
PHP:
        $sql = "select ad.* from new_table_ads ad";
        $i = 1;
        $inner = "";
        $and = "";
        foreach($_POST['filters'] as $id=>$value){
            if($value && $id){
                $inner .= " inner join new_table_filterads t$i on t$i.id_ad=ad.id and t$i.id_filter=$id ";
                $keysql = $i > 1 ? "AND" : "WHERE";
                $and .= "$keysql t$i.value_filter='$value'";
                $i++;
            }
        }
        var_dump($sql.$inner.$and);
 
Последнее редактирование модератором:
Подскажите, как импортировать json в mysql
json имеет такой вид
{"report":{"report_name":"movies_foreign","generated_at":1462777251,"total_count":14482,"movies":[{"title_ru":"название»","title_en":"Название","kinopoisk_id":000000,"token":"токен","type":"movie","camrip":false,"iframe_url":"ссылка","translator":"Дубляж","translator_id":21,"added_at":"2016-02-28 04:45:38","category":null}
 
Почитал ещё немного о EAV, правильно ли я понимаю?
создаем таблицу
3 поля
айди объявления
айди поля фильтры
значение
Характеристики и фильтры в EAV - самый оптимальный вариант потмоу что будет работать на любой версии базы данных
 
Автор, я бы советовал переходить на nosql типа mongodb для вашей задачи с json
 
Назад
Сверху