У меня есть столбец таблицы, который содержит строку. Эта строка изменяется по длине в зависимости от количества хранимых в ней переменных, но всегда следует той же схеме. Строка генерируется динамически плагином Wordpress, и я не влияю на то, как он хранится. Вот он:Какой mySQL-оператор использовать при проверке массива переменных в столбце таблицы
a:3:{i:0;s:3:"509";i:1;s:3:"511";i:2;s:3:"514";}
Пользователь может выбрать любое количество переменных из поля множественного выбора в форме HTML. Я храню их в сессии:
Array ([0] => 511 [1] => 514)
Сеанс должен содержать хотя бы одно значение, но может содержать больше.
Как я могу найти наличие 511 или 514 и т. Д. (Как хранится в моем массиве сеансов) в столбце таблицы?
Я до сих пор пробовал LIKE, IN и EXISTS, но никто не работает.
Пожалуйста, обратите внимание, что я использую WP_Query (Wordpress), так что только операторы, доступные для меня являются:
'=', '!=', '>', '>=', '<', '<=', 'LIKE', 'NOT LIKE', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN', 'EXISTS' and 'NOT EXISTS'
Только в случае, если кто-то нуждается в этом, вот массив WP_Query meta_query Я использую:
array(
'key' => 'teacher',
'value' => $_SESSION['selected_teachers'],
'compare' => 'IN'
)
Большое спасибо заранее!
Это похоже на сериализованный массив php. Если вы так сильно помешали Wordpress, то можно было бы написать функцию MySQL для выполнения проверки, – Kickstart
- это ваш _ $ _ SESSION ['selected_teachers'] _ - строка _a: 3: {i: 0; s: 3: "509", i: 1; s: 3: "511"; i: 2; s: 3: "514";} _ или _Array ([0] => 511 [1] => 514) _? – David
@David: $ _SESSION ['selected_teachers'] - это массив ([0] => 511 [1] => 514) –