У меня есть таблица в базе данных MySQL. В этой таблице есть текстовое поле под названием «выбор», в котором хранятся пронумерованные значения, разделенные символом канала (пример: 44 | 5 | 23 | 546 | .....). У меня также есть php-массив: $ values = array (63,35,7,5);лить текстовое поле в массив в mysql select query
Мне нужно сослаться на поле выбора в качестве массива параметров (разделенных символом «|») и выбрать только строки, содержащие хотя бы одно из массива чисел в $ values.
Надеюсь, я объяснил свою проблему достаточно точно, потому что мой английский очень беден ... Спасибо.
Я бы сказал, что проблема _actual_ заключается в том, что дизайн базы данных не сохраняет реляционные элементы в виде отдельных фрагментов данных. Почему бы не разделить это поле с разделителями каналов на отдельную таблицу? Запрос будет намного проще, поскольку SQL предназначен для запроса реляционных таблиц. – David
Проблема в том, что поле обычно содержит только одно значение. Не несколько значений. Если вам нужно иметь несколько значений в одном поле, у вас должна быть таблица с отношением (отношение «многие-ко-многим»). См. Здесь для получения дополнительной информации: http://www.tomjewett.com/dbdesign/dbdesign.php?page=manymany.php – jValdron
Это сильная сторона, и я изменю эту логику, если не смогу оштрафовать более простое решение для это. Изменение структуры db будет стоить мне много времени, и я немного ленив. –