programing

MySQL에서 지정된 텍스트가 포함된 필드를 쿼리하려면 어떻게 해야 합니까?

javajsp 2023. 7. 28. 21:49

MySQL에서 지정된 텍스트가 포함된 필드를 쿼리하려면 어떻게 해야 합니까?

SELECT stuff REGEXP 'itunes' as is_itunes;

이 MySQL 쿼리에서 "stuff"에 "itunes"라는 단어가 포함되어 있으면 itunes로 표시됩니다.

하지만, 저는 "시작"이라고 말하고 싶습니다.텍스트의 아무 곳도 아닌 "시작"을 확인하려면 어떻게 해야 합니까?

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

여기서%와일드카드 문자로 사용되므로 행과 일치합니다.stuff다음 중 하나와 동일한 필드itunes,itunesfoo,itunes1, ...

자세한 정보: W3 학교의 SQL LIKE 운영자.

캐럿 기호를 추가합니다. 캐럿 기호는 문자열의 시작을 나타냅니다.

SELECT stuff REGEXP '^itunes' as is_itunes;

하지만,LIKE 'itunes%'마크가 제안한 것처럼 인덱스가 올바르게 설정된 경우 더욱 빨라질 것입니다.

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

인덱스된 필드의 경우 다음 작업을 수행하는 것이 훨씬 좋습니다.

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

이렇게 하면 전체 테이블 검색이 생성되지 않고 인덱스가 사용됩니다.

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

언급URL : https://stackoverflow.com/questions/8070314/how-do-i-query-for-fields-containing-a-given-text-in-mysql