Как я могу запросить поля, содержащие данный текст в MySQL? SELECT stuff REGEXP 'itunes' as is_itunes; В этом запросе MySQL, если "материал" имеет в нем слово "itunes", он будет отмечать его как itunes. Однако я хочу сказать "начните с". Как я могу проверить "начинать с", а не где-либо в тексте? Ответ 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';
Ответ 2 Добавьте символ каретки, он представляет начало строки: SELECT stuff REGEXP '^itunes' as is_itunes; Однако LIKE 'itunes%', как было предложено Marc, должно быть намного быстрее, особенно если ваши индексы настроены правильно.
Ответ 3 Для индексированного поля гораздо лучше сделать: select ... where stuff >='itunes' AND stuff < 'itunet' Это не приведет к полному сканированию таблицы и использует индекс.