반응형
내 데이터베이스에는 다음과 같은 세 개의 테이블이 있습니다.
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
반응형
'MySql' 카테고리의 다른 글
MySQL 테이블에서 시간이 겹치는 지 확인하고 계십니까? (0) | 2020.10.03 |
---|---|
MySQL Apache Derby와 MySQL의 차이점은 무엇입니까 (0) | 2020.10.03 |
MySQL PHP를 사용하여 mysql 테이블을 .txt 또는 .doc 파일로 내보내기 (0) | 2020.10.03 |
MySQL 매우 간단한 사이트를위한 PHP 관리 백엔드 구축 (0) | 2020.10.03 |
MySQL, phpMyAdmin : TIMESTAMP는 항상 NOW 함수를 실행합니다. (0) | 2020.10.03 |
댓글