SQL - найти полное слово в тексте - PullRequest
5 голосов
/ 20 апреля 2011

У меня есть текстовый столбец в одной из моих таблиц в БД MySql.Я хочу получить все записи, которые имеют определенное слово в текстовом столбце.например:

ID,BIO
1, "i am a cto"
2, "i am a cto/developer"
3, "cto"
4, "i am a cto_developer"
5, "ctools"

В этом случае при поиске «cto» я хочу, чтобы запрос возвращал записи 1,2,3,4, но не 5.

Есть идеи?1006 *

ps Я хочу, чтобы регистр не учитывался

Ответы [ 2 ]

3 голосов
/ 20 апреля 2011

Возможно, вы захотите использовать полнотекстовое индексирование в зависимости от объема используемых вами данных.В противном случае вы можете использовать REGEXP для указания регулярного выражения для поиска слова.Вы должны увидеть этот вопрос (и ответить) , чтобы узнать, как использовать REGEXP для поиска слов.

0 голосов
/ 20 апреля 2011

использовать НРАВИТСЯ оператор .например так:

select * from table1 where BIO LIKE '%cto%'  

'%' указывает на подстановочный знак (что означает любой набор символов).
, если вы хотите найти только записи, начинающиеся с 'cto', используйте: 'cto%'.
если вы хотите, чтобы только записи, содержащие cto в качестве полного слова (то есть с пробелами вокруг него), используйте:

BIO LIKE '% cto %' or BIO LIKE 'cto %' or BIO LIKE 'cto %'  

(два Or, которые я добавил, предназначены для случаев, когда' cto'появляется в начале / конце строки)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...