MySQL SELECT 쿼리 문자열 일치
일반적으로 SELECT를 사용하여 데이터베이스를 쿼리할 때는 지정된 검색 문자열과 일치하는 레코드를 찾으려는 것이 일반적입니다.
예:
SELECT * FROM customers WHERE name LIKE '%Bob Smith%';
그 쿼리는 '밥 스미스'가 이름 필드의 아무 곳에나 나타나는 모든 기록을 제공할 것입니다.
제가 하고 싶은 것은 그 반대입니다.
이름 필드에 'Bob Smith'가 있는 모든 레코드를 찾는 대신, 쿼리에 대한 문자열 인수인 'Robert Bob Smith III, PhD.'에 이름 필드가 있는 모든 레코드를 찾고 싶습니다.
그냥 LIKE를 돌려보세요.
SELECT * FROM customers
WHERE 'Robert Bob Smith III, PhD.' LIKE CONCAT('%',name,'%')
다음과 같은 정규식을 사용할 수 있습니다.
SELECT * FROM pet WHERE name REGEXP 'Bob|Smith';
올바르지 않음:
SELECT * FROM customers WHERE name LIKE '%Bob Smith%';
대신:
select count(*)
from rearp.customers c
where c.name LIKE '%Bob smith.8%';
select count그냥 쿼리합니다(계속)
C인덱스에 필요한 이름 행에 db.table을 연결합니다.
LIKEobvs여야 합니다.
8DB8 이하의 모든 참조를 호출합니다(꼭 필요한 것은 아니지만 깔끔함이 좋습니다).
언급URL : https://stackoverflow.com/questions/4916195/mysql-select-query-string-matching
'programing' 카테고리의 다른 글
| iframe 내에서 상위 창 다시 로드 (0) | 2023.09.01 |
|---|---|
| 파이썬 요청입니다.403 금지됨 (0) | 2023.09.01 |
| 스프링 부트 동적 쿼리 (0) | 2023.09.01 |
| PowerShell에서 해시 테이블을 JSON으로 올바르게 변환하려면 어떻게 해야 합니까? (0) | 2023.09.01 |
| mariadb 테이블에서 정확하게 일치하는 행만 가져오는 중 (0) | 2023.09.01 |