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
'programing' 카테고리의 다른 글
Oracle SQL 쿼리를 사용하여 그룹의 각 요소에 대한 시퀀스 번호 추가 (0) | 2023.07.28 |
---|---|
함수를 반환하는 함수를 만들려면 어떻게 해야 합니까? (0) | 2023.07.28 |
주요 가치 관찰을 수행하고 UIView 프레임에서 KBO 콜백을 받으려면 어떻게 해야 합니까? (0) | 2023.07.28 |
Node.js - 생성자로 module.exports 사용 (0) | 2023.07.28 |
배열 목록을 방지합니다.인덱스 반환에서 추가() (0) | 2023.07.28 |