mysql 쿼리에 문제가 있습니다.LEFT JOIN AND LIKE mysql을 사용합니다.
mysql> select username, specialty from users;
+----------+------------------+
| username | specialty |
+----------+------------------+
| JinkX | php, html, mysql |
| test1 | html |
+----------+------------------+
mysql> select name, tags from tasks;
+----------------+------+
| name | tags |
+----------------+------+
| fix front page | html |
+----------------+------+
그리고 난 다음 쿼리를 수행 할 때, 그것은 전문 정확히 태그와 동일한 경우에만 작동 : 내 테이블과 같은 방법 이있다. 하지만 난 당신이 잘못 like
을하고있는 두
mysql> select tasks.name from users left join tasks on tasks.tags LIKE users.specialty where users.username = 'test1';
+----------------+
| name |
+----------------+
| fix front page |
+----------------+
mysql> select tasks.name from users left join tasks on tasks.tags LIKE users.specialty where users.username = 'JinkX';
+------+
| name |
+------+
| NULL |
+------+
스키마를 변경 (정규화) 하시겠습니까? –
확실한 해결 방법은 무엇입니까? – saadlulu
조 (Joe)의 대답에 따라 (정수 대용 키가있는 별도의'tags' 테이블을 가지고있을지라도) 이렇게하면 인덱스를 사용하여 쿼리를보다 효율적으로 수행 할 수 있습니다. 모든 사용자 레코드를 검사하지 않고도 –