Подтвердить что ты не робот

Как я могу запросить поля, содержащие данный текст в MySQL?

SELECT stuff REGEXP 'itunes' as is_itunes;

В этом запросе MySQL, если "материал" имеет в нем слово "itunes", он будет отмечать его как itunes.

Однако я хочу сказать "начните с". Как я могу проверить "начинать с", а не где-либо в тексте?

4b9b3361

Ответ 1

SELECT ... WHERE stuff LIKE 'itunes%';

Ответ 2

Добавьте символ каретки, он представляет начало строки:

SELECT stuff REGEXP '^itunes' as is_itunes;

Однако LIKE 'itunes%', как было предложено Marc, должно быть намного быстрее, особенно если ваши индексы настроены правильно.

Ответ 3

Для индексированного поля гораздо лучше сделать:

select ... where stuff >='itunes' AND stuff < 'itunet'

Это не приведет к полному сканированию таблицы и использует индекс.

Ответ 4

SELECT ... WHERE LEFT(stuff, 6) = 'itunes';

Ответ 5

SELECT ... WHERE stuff REGEXP '[[:<:]]itunes';