Проблема с определением части текста в ячейке

288
18 января 2017, 02:34

Здравствуйте. У меня есть задача найти в определенных совпадения части текста, но к сожалению функция срабатывает если найден целый текст.
Пример: ищем в ячейке АБВ, в ячейке содержится 123, АБВ, 456 - ноль реакции, если в ячейке АБВ - то все находит.

Код следующий:

$result=mysql_query('SELECT virtuemart_product_id  FROM  virtuemart_products WHERE "Стена" in(product_parametr1, product_parametr2, product_parametr3)');

Заранее спасибо

Answer 1

Попробуйте

SELECT virtuemart_product_id 
    FROM virtuemart_products 
    WHERE product_parametr1 LIKE "%Стена%" 
        OR product_parametr2 LIKE "%Стена%" 
        OR product_parametr3 LIKE "%Стена%"
Answer 2

ищем в ячейке АБВ, в ячейке содержится 123, АБВ, 456 - ноль реакции, если в ячейке АБВ - то все находит.

В подобных случаях надо не сравнивать, а именно что проверять на вхождение. Возможные варианты проверки:

WHERE field LIKE '%АБВ%'
WHERE INSTR(field, 'АБВ')

Код следующий

Возникает подозрение, что одно из трёх проверяемых полей в точности равно требуемому литералу. Тогда:

WHERE "Стена" = product_parametr1
   OR "Стена" = product_parametr2
   OR "Стена" = product_parametr3

Но если ищем вхождение литерала как подстроки в одно из трёх полей, я бы рекомендовал использовать:

WHERE INSTR(CONCAT(product_parametr1, product_parametr2, product_parametr3), 'АБВ')

Всё равно индексы по полям использоваться не будут, а так будет выполняться конкатенация и один поиск (пусть и по более длинной строке), а не три отдельных поиска, имхо так будет чуток побыстрее.

READ ALSO
Помогите с логическими выражениями

Помогите с логическими выражениями

Здравствуйте! вот код

261
Запрос на сервер с помощью curl php

Запрос на сервер с помощью curl php

Хей! Упорно, но безуспешно пытаюсь достучаться до сервера с помощью curlХочу получить ответ но в итоге получаю сообщение о ошибки ключа api

390
аналог addShutdownHook

аналог addShutdownHook

Задача: Есть форма добавления изображений, файлов, текстовКогда заполняем форму и отправляем, сначала загружаются изображения, файлы, а только...

319
Symfony 3 авторизация

Symfony 3 авторизация

Здравствуйте, начал делать аутентификацию в проекте на Symfony 3(пишу на нем впервые) и столкнулся с такой проблемойПисал код на основе документации,...

876