본문 바로가기
MySql

MySQL 키워드를 사용하여 PHP mysql 검색 여러 테이블

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

내 데이터베이스에는 다음과 같은 세 개의 테이블이 있습니다.

messages
topics
comments

이러한 각 테이블에는 'content'와 'title'이라는 두 개의 필드가 있습니다. 내 SQL 문에서 '좋아요'를 사용하여 'messages.content', 'messages.title', 'topics.content', 'topics.title', 'comments.content'및 'comments를 볼 수 있기를 원합니다. 제목 '.

지금까지 내 쿼리는 하나의 테이블에서만 결과를 찾을 수 있습니다.

mysql_query("SELECT * FROM messages 
WHERE content LIKE '%" . $keyword . "%' 
OR title LIKE '%" . $keyword ."%'");

또한 여러 테이블에서 결과를 얻은 후에 어떤 테이블에서 어떤 결과가 나오는지 어떻게 알 수 있는지 궁금합니다.

어떤 도움이라도 대단히 감사하겠습니다!

 

해결 방법

 

$query = "(SELECT content, title, 'msg' as type FROM messages WHERE content LIKE '%" . 
           $keyword . "%' OR title LIKE '%" . $keyword ."%') 
           UNION
           (SELECT content, title, 'topic' as type FROM topics WHERE content LIKE '%" . 
           $keyword . "%' OR title LIKE '%" . $keyword ."%') 
           UNION
           (SELECT content, title, 'comment' as type FROM comments WHERE content LIKE '%" . 
           $keyword . "%' OR title LIKE '%" . $keyword ."%')";

mysql_query($query);

따라서 세 테이블 모두에서 결과를 얻었으며 type 값을 확인하여 어떤 행이 어떤 테이블에서 왔는지 식별 할 수 있습니다.

 

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

 

 

반응형

댓글