Как проблема с ключевыми словами в MySQL - PullRequest
0 голосов
/ 22 марта 2012

Я хочу отобразить результат ADSTech с помощью оператора Like с использованием ключевого слова ADS Technology в MySQL, например:

SELECT * FROM subcategories WHERE `name` LIKE '%ADS Technology%'

Требуется этот результат

enter image description here

Также смотрите скриншот моей базы данных

enter image description here

Ответы [ 3 ]

2 голосов
/ 22 марта 2012

Поиск не будет выполняться, поскольку он учитывает пробел.

Вам необходимо либо удалить пробел из ключевого слова, перед тем как передать запрос

$string_without_whitespaces = str_replace(' ', '', $string);

ИЛИ

$string_without_whitespaces = preg_replace('~\s~', '', $string);

ИЛИ разделите ключевое слово из пробела, как если бы вы использовали PHP, используйте explode() и выполняйте запрос по этому массиву в соответствии с вашими потребностями.

$key=explode("",$keyword);

, затем

$query="SELECT * FROM subcategories WHERE `name` LIKE '%".$key[1]."%' OR '%".$key[2]."'";

ИЛИ

$query="SELECT * FROM subcategories WHERE `name` LIKE '%".$key[1].$key[2]."%'";
1 голос
/ 22 марта 2012

Если я ясно понял ваш вопрос, вы можете использовать любой из следующих запросов для получения результатов, связанных с ADSTech или ADS Technology ....

SELECT * FROM subcategories WHERE `name` LIKE '%ADSTech%' OR `name` LIKE '%ADS Technology%';

SELECT * FROM subcategories WHERE `name` IN ('ADSTech','ADS Technology');

Удачи,

0 голосов
/ 22 марта 2012

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

SELECT *
FROM subcategories sc, companyalias ca
WHERE ca.primaryname LIKE '%ADS Technology%'
  AND ca.name = sc.name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...