[SQL] 어떻게 MySQL의에서 여러 열을 검색하려면?
SQL어떻게 MySQL의에서 여러 열을 검색하려면?
나는 키워드 기반의 일치를 찾기 위해 여러 열을 검색하는 검색 기능을 만들기 위해 노력하고있어. 이 쿼리 :
SELECT title FROM pages LIKE %$query%;
하나의 열을 검색 작동, 나는 오류가 쉼표 결과에 열 이름을 분리났습니다. 그래서 MySQL의에서 여러 열을 검색 할 수 있습니까?
해결법
-
==============================
1.당신은 당신이 반환에 검색을 원하는에 따라 AND 또는 OR 연산자를 사용할 수 있습니다.
당신은 당신이 반환에 검색을 원하는에 따라 AND 또는 OR 연산자를 사용할 수 있습니다.
SELECT title FROM pages WHERE my_col LIKE %$param1% AND another_col LIKE %$param2%;
두 절은 레코드가 반환하는 일치해야합니다. 또한 :
SELECT title FROM pages WHERE my_col LIKE %$param1% OR another_col LIKE %$param2%;
두 절은 다음과 일치하는 경우 레코드가 반환됩니다.
당신은 MySQL의 SELECT 쿼리를 수행 할 수있는 작업에 대한 자세한 내용은 문서를보십시오.
-
==============================
2.그냥 검색을 위해 인 경우에 당신은 CONCATENATE_WS을 사용할 수 있습니다. 이 와일드 카드 검색을 허용합니다. 테이블의 크기에 따라 성능 문제가있을 수 있습니다.
그냥 검색을 위해 인 경우에 당신은 CONCATENATE_WS을 사용할 수 있습니다. 이 와일드 카드 검색을 허용합니다. 테이블의 크기에 따라 성능 문제가있을 수 있습니다.
SELECT * FROM pages WHERE CONCAT_WS('', column1, column2, column3) LIKE '%keyword%'
-
==============================
3.당신의 테이블의 MyISAM 인 경우 :
당신의 테이블의 MyISAM 인 경우 :
SELECT * FROM pages WHERE MATCH(title, content) AGAINST ('keyword' IN BOOLEAN MODE)
당신이 당신의 열에서 전체 텍스트 인덱스를 만들 경우에 훨씬 더 빨리 될 것입니다 :
CREATE FULLTEXT INDEX fx_pages_title_content ON pages (title, content)
하지만 인덱스 없이도 작동합니다.
-
==============================
4.1)
1)
select * from employee em where CONCAT(em.firstname, ' ', em.lastname) like '%parth pa%';
2)
select * from employee em where CONCAT_ws('-', em.firstname, em.lastname) like '%parth-pa%';
'이름 성': 우리가 같은 데이터가 첫째 유용합니다.
예컨대
'FIRSTNAME-LASTNAME': 우리가 같은 데이터가 둘째 유용합니다. 그것에서 당신은 특수 문자를 사용할 수 있습니다.
예컨대
-
==============================
5.다음은 검색 결과로 데이터베이스에서 아무것도를 검색하는 데 사용할 수있는 쿼리입니다,
다음은 검색 결과로 데이터베이스에서 아무것도를 검색하는 데 사용할 수있는 쿼리입니다,
SELECT * FROM tbl_customer WHERE CustomerName LIKE '%".$search."%' OR Address LIKE '%".$search."%' OR City LIKE '%".$search."%' OR PostalCode LIKE '%".$search."%' OR Country LIKE '%".$search."%'
이 코드를 사용하면 쉽게 여러 열에에서 검색 도움이 될 것입니다
-
==============================
6.
SELECT * FROM persons WHERE (`LastName` LIKE 'r%') OR (`FirstName` LIKE 'a%');
위의 쿼리를 시도하십시오.
from https://stackoverflow.com/questions/2514548/how-to-search-multiple-columns-in-mysql by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] JSON 열의 배열의 요소를 쿼리 (0) | 2020.04.19 |
---|---|
[SQL] `REPLACE`와 MySQL에서 'INSERT ... ON DUPLICATE KEY UPDATE` 사이의 실제적인 차이점은 무엇입니까? (0) | 2020.04.19 |
[SQL] SQL 서버 교체, 특정 문자 후 모두 제거 (0) | 2020.04.19 |
[SQL] tmp를 테이블에 대한 MySQL의 잘못된 키 파일 만들기 여러 조인 (0) | 2020.04.19 |
[SQL] X 일 연속 확인 - 데이터베이스에 주어진 타임 스탬프를 (0) | 2020.04.19 |