SeregaDa Опубликовано 12 января, 2014 Жалоба Поделиться Опубликовано 12 января, 2014 В карточке товара завел дополнительное поле varchar(500). В это поле через разделитель планируется вводить некоторые идентификаторы, по которым можно отыскать товар на сайте. В файле api/Products.php пытаюсь настроить поиск по этому полю. Можно ли на уровне SQL-запроса добиться того, чтобы товар искался по строгому совпадению с любым из идентификаторов дополнительного поля? Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 12 января, 2014 Жалоба Поделиться Опубликовано 12 января, 2014 Через что? Чем вам LIKE без % не устраивает? Цитата Ссылка на сообщение Поделиться на другие сайты
SeregaDa Опубликовано 12 января, 2014 Автор Жалоба Поделиться Опубликовано 12 января, 2014 Вот с LIKE у меня не получается грамотно запрос выстроить. Допустим, в поле meta_new = 123,456 OR p.meta_new LIKE "%'.mysql_real_escape_string(trim($keyword)).'%") При подобной конструкции при вводе в строку поиска "12" или "56" товар будет обнаружен. А хочется, только чтобы при вводе 123 или 456 данный товар находился. Возможно, надо просто дополнить условие? С find_in_set сейчас познакомлюсь... Цитата Ссылка на сообщение Поделиться на другие сайты
SeregaDa Опубликовано 13 января, 2014 Автор Жалоба Поделиться Опубликовано 13 января, 2014 1. find_set_(value,meta_new);2. meta_new LIKE concat('%,',value,',%') OR meta_new LIKE concat(value,',%') OR meta_new LIKE concat('%,',value) OR meta_new LIKE concat(value)1. Вариант вполне работоспособен.2. Не тестил, но насколько могу проследить логику, покажет не только однозначное совпадение, но и всякие включения. Возможно, и ошибаюсь. Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.