2016-11-30 1 views
-3

mysql 테이블에 쉼표로 구분 된 ID를 2,7,6과 같이 저장합니다.mysql 테이블에서 쉼표로 구분 된 값 선택

get 값에서받은 ID와 일치하는 행을 선택하는 쿼리를 작성하고 싶습니다.

+6

나쁜 실수 .... 복잡하고 느리고 비효율적입니다. 가능한 경우 테이블 구조를 정규화하십시오. 그렇지 않으면 FIND_IN_SET()이 최선의 결과를 얻을 수 있습니다. –

+0

잘 행운의 남자 –

+0

최상의 솔루션은 다음과 같습니다. ** 쉼표로 구분 된 ID를 저장하지 마십시오. Mark에게 귀를 기울이고 외래 키로 테이블을 표준화하십시오. n-m-relation이있는 경우 피벗 테이블을 사용하십시오. ** ** 지금하고있는 일을 계속하지 마십시오. 틀렸어. –

답변

1

데이터베이스에 쉼표로 구분 된 값을 저장하는 것은 대단히 어렵습니다. 당신은 테이블에 같이 저장

가 가정 :

id  extraid 
1  2,4,5 
2  3,5 
3  4,7,5,3 
이미 다음 절차를 사용하여 쉼표로 구분 된 값을 사용하여 데이터베이스를 완료하면 이제 다른 테이블이 ID의 외래 키를 사용 ..

를 사용하여 그런 다음

:

<?php 
    $select = "SELECT * FROM tbl_name WHERE id = 1"; 
    $query = mysql_query($select); 
    while($row = mysql_fetch_array($query)){ 
     $extraid=explode(',', $row['extraid']); 
     foreach($extraid as $id) { 
       echo $id; // output as single id. 
     } 
    } 

?> 

이제 쓰기 쿼리 ID를 비교 한 후 ...

희망이 도움이 될 수도 있습니다

관련 문제