У меня есть таблица MySQL, которая выглядит примерно так:
Row 1:
'visitor_input_id' => int 1
'name' => string 'country'
'value' => string 'Canada'
Row 2:
'visitor_input_id' => int 1
'name' => string 'province'
'value' => string 'Alberta'
Row 3:
'visitor_input_id' => int 1
'name' => string 'first_name'
'value' => string 'Jim'
Проблема в том, что мне нужно иметь возможность фильтровать его, чтобы пользователь мог создавать отчеты, используя это:
filter 1:
'field_name' => string 'country'
'field_operator' => string '='
'field_value' => string 'Canada'
filter 2:
'field_name' => string 'province'
'field_operator' => string '!='
'field_value' => string 'Alberta'
filter 3:
'field_name' => string 'first_name'
'field_operator' => string '%LIKE%'
'field_value' => string 'Jim'
Я не совсем уверен, как будет выглядеть запрос, чтобы иметь возможность выбирать из этого, используя фильтры. Какие-либо предложения? (К сожалению, создание новой таблицы для более разумного хранения данных в настоящее время неосуществимо, поскольку в ней уже есть пользовательские данные)
Я думаю, это будет выглядеть примерно так:
if(field_name = 'province' THEN ADD WHERE field_value != 'Alberta')
if(field_name = 'country' THEN ADD WHERE field_value = 'Canada')
if(field_name = 'first_name' THEN ADD WHERE field_value LIKE '%jim%')
но я не уверен, как это будет работать ...