데이터베이스에 "태그"라는 필드가있는 테이블이 있습니다 (예 : iOS, Android, Java, JavaScript 등.이 표의 모든 항목을 선택하고 싶습니다. 일부 태그와 일치하는 항목이 있습니다. 예 :MySQL "like"(거짓 긍정)
id | 이름 | 태그
- | ------- | -----
1 | 이름 1 | iOS, Android
2 | 이름 2 | 자바 스크립트, CSS
3 | 이름 3 | 이제 HTML, 자바
, 나는 태그 '자바'내가이 할 (ID = 3 만 것)가있는 항목 만하려는 경우 : 당신이 상상할으로,
SELECT * FROM posts WHERE tags LIKE '%Java%';
을하지만를 , 두 번째 (JavaScript) 항목과 세 번째 (Java) 항목을 반환합니다.
세 번째 만 반환하려면 어떻게해야합니까? 당신은 또한 like
하여이 작업을 수행 할 수 있습니다, MySQL과 다른 데이터베이스에서
SELECT *
FROM posts
WHERE find_in_set('Java', tags) > 0;
,하지만 당신은 모든 주위에 구분 기호를 넣어해야합니다 :
'SELECT * FROM posts '% Java'와 같은 태그들 : –
many-to-many 관계를위한 구글 – zerkms
대신 관계 테이블을 사용하고'LIKE' 절을 현명하게 만들어야합니다. – Raptor