programing

MySQL SELECT 쿼리 문자열 일치

javajsp 2023. 9. 1. 20:35

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