MySQL - результат фильтра - PullRequest
       2

MySQL - результат фильтра

1 голос
/ 25 февраля 2011

Я хочу отфильтровать результат моего запроса SQL.Я хочу выбрать все, что имеет определенный текст в некотором столбце.

Пример:

ВЫБРАТЬ * ИЗ РАЗДЕЛЕЙ ГДЕ (имя имеет значения 'abc' в своем значении. MyabcCategory)

Также, возможно, не очень хорошая идея делать это в запросе, может быть, лучше получить все и затем вместо этого отфильтровать массив?Но я не знаю, как сделать этот эфир.

Ответы [ 3 ]

5 голосов
/ 25 февраля 2011

Используйте LIKE с % подстановочным знаком:

SELECT * FROM categories WHERE name LIKE '%abc%'

Это даст вам все записи, в которых есть abc.

Вы можете узнатьподробнее об этом здесь:)

3 голосов
/ 25 февраля 2011

Вы хотите использовать оператор LIKE , с % для соответствия любому символу до и после вашего конкретного слова:

select *
from categories
where name like '%abc%';


Но учтите, чтопоэтому MySQL будет сканировать каждую строку таблицы каждый раз, когда выполняется запрос ... что может быть не очень хорошо, если у вас много данных.

Если вы ищете какой-то текст,Вы можете либо:

  • Использовать FULLTEXT index , если вы работаете с таблицами MyISAM.
  • Или использовать отдельное решениеиз MySQL, с определенной системой индексирования / поиска, такой как Solr .
2 голосов
/ 25 февраля 2011
SELECT * FROM categories WHERE name LIKE '%abc%'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...