IN()을 사용하는 방법 연산자가 작동하지 않습니다.MySQL IN() 연산자가 작동하지 않습니다.
이 테이블은 예제이며 내가 가진 실제 데이터베이스와 같습니다.
나는 테이블을 추가하거나 변경 허용하지 않는 사람들은 테이블은 다음과 같습니다
students
+------+------+
| id | name |
+------+------+
| 1 | ali |
| 2 | man |
| 3 | sos |
+------+------+
Classes
+------+---------+
| c_id | students|
+------+---------+
| 1 | 1,2,3,4 |
| 2 | 88,33,55|
| 3 | 45,23,72|
+------+---------+
내가이 쿼리를 사용하는 경우는 ID = 1 때문에 "ID로 나에게 단지 학생을 반환 IN (students) "첫 번째 값이 같으면 1을 반환합니다.
select name,c_id from students,classes where id IN (students);
내가 PHP를 추가하는 것보다 목록을 가져올 때. 그것은 잘 동작합니다. 그러나이 솔루션은 루프가 필요하며 많은 쿼리 비용이 듭니다.
select name,c_id from students,classes where id IN (1,2,3,4);
FIND_IN_SET()
같은 일이, 그것은 단지 하나를 반환 할 것하지만, 다른 위치에있는 값 경우 당신은 세 개의 테이블이 필요 0
@Strawberry는 -_- 방법 Yessssssss를 만들기 위해? – alnassre
정규화를 참조하십시오. 까다로운 개념이지만, 내가 그립을 잡을 수 있다면 누구나 할 수 있습니다. – Strawberry