powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос не ищет точное соответствие
9 сообщений из 9, страница 1 из 1
Запрос не ищет точное соответствие
    #39838679
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет

Есть вот запрос в котором есть LIKE

К примеру варианты запросов:

1. Стакан одноразовый 400-550мл d95мм прозрачный ПЭТ 1(50)/800
2. Одноразовый десертный стаканчик СПК-76 120 мл прозрачный
3. Стакан

Ищет только номер 2, по точному "Стакан" не ищет ничего хотя записей 131 при прямом запросе в БД, все остальные так же работают. В чем может быть проблема?

Вот сам запрос, он на WP но думаю видно будет:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT $wpdb->posts.* 
       FROM $wpdb->posts, $wpdb->postmeta
       WHERE $wpdb->posts.ID = $wpdb->postmeta.post_id 
       AND ($wpdb->posts.post_title LIKE '%".$_POST['term']."%' OR ($wpdb->postmeta.meta_key = 'vnutrenniy_kod' AND $wpdb->postmeta.meta_value LIKE '%".$_POST['term']."%')) 
       AND $wpdb->posts.post_status = 'publish' 
       AND $wpdb->posts.post_type = 'post'
       GROUP BY $wpdb->posts.ID
       ORDER BY $wpdb->posts.post_date DESC
       LIMIT 5
    ";
...
Рейтинг: 0 / 0
Запрос не ищет точное соответствие
    #39838687
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Не надо публиковать PHP-код сборки запроса, да к тому же выдранный абы как. Публикуйте полученный результат сборки - после присвоения значения текста запроса в переменную.
2) Для поиска на точное совпадение вообще-то используют оператор равенства, а не соответствия шаблону.
...
Рейтинг: 0 / 0
Запрос не ищет точное соответствие
    #39838723
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina1) Не надо публиковать PHP-код сборки запроса, да к тому же выдранный абы как. Публикуйте полученный результат сборки - после присвоения значения текста запроса в переменную.
2) Для поиска на точное совпадение вообще-то используют оператор равенства, а не соответствия шаблону.

вот так выглидет прямой запрос но отдет какое то предупреждение, но по факту все работает кроме "стакан"

Код: plsql
1.
SELECT * FROM demoshop_posts, demoshop_postmeta WHERE demoshop_posts.ID = demoshop_postmeta.post_id AND (demoshop_posts.post_title LIKE '%стакан%' OR (demoshop_postmeta.meta_key = 'vnutrenniy_kod' AND demoshop_postmeta.meta_value LIKE '%стакан%')) AND demoshop_posts.post_status = 'publish' AND demoshop_posts.post_type = 'post' GROUP BY demoshop_posts.ID ORDER BY demoshop_posts.post_date DESC LIMIT 5
...
Рейтинг: 0 / 0
Запрос не ищет точное соответствие
    #39838740
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT * 
FROM demoshop_posts, 
     demoshop_postmeta 
WHERE demoshop_posts.ID = demoshop_postmeta.post_id 
  AND (    demoshop_posts.post_title LIKE '%стакан%' 
        OR (     demoshop_postmeta.meta_key = 'vnutrenniy_kod' 
	     AND demoshop_postmeta.meta_value LIKE '%стакан%'
           )
      ) 
  AND demoshop_posts.post_status = 'publish' 
  AND demoshop_posts.post_type = 'post' 
GROUP BY demoshop_posts.ID 
ORDER BY demoshop_posts.post_date DESC 
LIMIT 5

Синтаксически к запросу претензий нет.

angrybotно отдет какое то предупреждениену так посмотрите его... и процитируйте.
...
Рейтинг: 0 / 0
Запрос не ищет точное соответствие
    #39838743
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaСинтаксически к запросу претензий нет.Вернее, если не считать неполной группировки, но кому это интересно...
...
Рейтинг: 0 / 0
Запрос не ищет точное соответствие
    #39838749
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
angrybot1. Стакан одноразовый 400-550мл d95мм прозрачный ПЭТ 1(50)/800
2. Одноразовый десертный стаканчик СПК-76 120 мл прозрачный
3. Стакан

Ищет только номер 2, по точному "Стакан" не ищет ничего
Ишите "стакан", находит "стакан" и не находит "Стакан". Верно?
Возможно, какой-то бинарный COLLATION используется.
...
Рейтинг: 0 / 0
Запрос не ищет точное соответствие
    #39838824
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,
нет разницы, любой регистр не видит, хотя на другом сайте подключил такую же базу до очистки, изменились только id т.к. стоит автоинкремент и там ищет, тут нет

не пойму уже в чем проблема, код одинаковый, структура тоже
...
Рейтинг: 0 / 0
Запрос не ищет точное соответствие
    #39838833
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
angrybotнет разницы, любой регистр не видит
angrybotИщет только номер 2
Как первое со вторым коррелирует?
...
Рейтинг: 0 / 0
Запрос не ищет точное соответствие
    #39845453
Григорий2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если код одинаковый и структура одинаковая, то похоже на то, что у вас всё таки при миграции кодировка поменялась.

Попробуйте добавть lower(demoshop_posts.post_title) like '%стакан%'
или измените кодировку таблице на COLLATE='utf8_general_ci'. На ней like точно работает без учёта регистра.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос не ищет точное соответствие
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]