복붙노트

[SQL] 어떻게 MySQL의에서 여러 열을 검색하려면?

SQL

어떻게 MySQL의에서 여러 열을 검색하려면?

나는 키워드 기반의 일치를 찾기 위해 여러 열을 검색하는 검색 기능을 만들기 위해 노력하고있어. 이 쿼리 :

SELECT title FROM pages LIKE %$query%;

하나의 열을 검색 작동, 나는 오류가 쉼표 결과에 열 이름을 분리났습니다. 그래서 MySQL의에서 여러 열을 검색 할 수 있습니까?

해결법

  1. ==============================

    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. ==============================

    2.그냥 검색을 위해 인 경우에 당신은 CONCATENATE_WS을 사용할 수 있습니다. 이 와일드 카드 검색을 허용합니다. 테이블의 크기에 따라 성능 문제가있을 수 있습니다.

    그냥 검색을 위해 인 경우에 당신은 CONCATENATE_WS을 사용할 수 있습니다. 이 와일드 카드 검색을 허용합니다. 테이블의 크기에 따라 성능 문제가있을 수 있습니다.

    SELECT * 
    FROM pages 
    WHERE CONCAT_WS('', column1, column2, column3) LIKE '%keyword%'
    
  3. ==============================

    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. ==============================

    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. ==============================

    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. ==============================

    6.

    SELECT * FROM persons WHERE (`LastName` LIKE 'r%') OR (`FirstName` LIKE 'a%');
    

    위의 쿼리를 시도하십시오.

  7. from https://stackoverflow.com/questions/2514548/how-to-search-multiple-columns-in-mysql by cc-by-sa and MIT license