본문 바로가기
MySql

MySQL : 열에 단어 목록의 단어가 포함됨

by 베이스 공부 2020. 10. 23.
반응형

단어 목록이 있습니다. 'Apple', 'Orange', 'Pear'라고 가정 해 보겠습니다. 다음과 같은 데이터베이스에 행이 있습니다.

------------------------------------------------
|author_id   |  content                        |
------------------------------------------------
| 54         | I ate an apple for breakfast.   |
| 63         | Going to the store.             |
| 12         | Should I wear the orange shirt? |
------------------------------------------------

content 열에 내 목록에서 하나 이상의 단어가 포함되어 있기 때문에 첫 번째 및 세 번째 행을 반환 할 InnoDB 테이블에 대한 쿼리를 찾고 있습니다. 내 목록의 각 단어에 대해 한 번씩 테이블을 쿼리하고 LIKE 및 % 와일드 카드 문자를 사용할 수 있다는 것을 알고 있지만 그러한 일에 대한 단일 쿼리 메서드가 있는지 궁금합니다.

 

해결 방법

 

수정 :

이 같은:

SELECT * FROM yourtable WHERE content LIKE '%apple%' OR content LIKE '%orange%'

단어를 반복하여 WHERE 절 조건을 만들 수 있습니다.

예 :

$words = array( 'apple', 'orange' );
$whereClause = '';
foreach( $words as $word) {
   $whereClause .= ' content LIKE "%' . $word . '%" OR';
}

// Remove last 'OR'
$whereClause = substr($whereClause, 0, -2);

$sql = 'SELECT * FROM yourtable WHERE' . $whereClause;

echo $sql;


SELECT * FROM yourtable WHERE content LIKE "%apple%" OR content LIKE "%orange%" 

 

참조 페이지 https://stackoverflow.com/questions/4688643

 

 

반응형

댓글