2013-10-05 5 views
1
-----ID 
     1 
     5 
     1,6 
     3 
     4 
     1,36 
     1 

검색 할 숫자가 '1,6,36'입니다.복수 번호 필드에서 복수 번호 검색하기

이것은 (상기 표에서, 예를 들어 총 4 행) 1, 6, 36을 포함하는 모든 행

을 찾아야는 I 그들 중에 일한

ID IN (1,6,36) 

FIND_IN_SET(ID, '1,6,36')

시도.

어떻게하면 좋을까요?

답변

0

당신은 호출 SQL 쿼리를 수행해야하고, 다음과 같이 당신은 그것을 수행해야합니다

$id_array = array(1, 6, 36) 
$sql = "SELECT * FROM table WHERE id IN ($id_array)"; 
$search = mysqli_query($sql_connection, $sql); 

그런 다음 다음과 같은 당신이 PHP 루프를해야 표시하려면 :

while($ids = mysqli_fetch_array($search)) { 
    echo '<h3>'.$ids['field_from_db'].'</h3><br />'; 
} 
+0

그래서 1 개의 mysql 라인에서이 작업을 수행 할 방법이없는 것 같습니다. –

+0

MySql은 놀랍지 만, 코드 작성 및 트릭 사용 방법을 배우는 데는 고통스럽지 않습니다. 이 코드는 새로운 버전의 PHP와 MySql에서도 작동한다고 보장하지는 않습니다. –

+0

동일한 질문을 한 다른 사람들은 내 검색으로 같은 대답을합니다. DB로 배열을 검색해야하는 것처럼 보입니다. 과거에 동일한 코드를 사용하여 게시물의 단어를 검색했습니다. 그것은 효과가 있지만 처음에는 조금 고통 스럽습니다. –

1
FIND_IN_SET(1, ID) OR 
FIND_IN_SET(6, ID) OR 
FIND_IN_SET(36, ID) 
+0

"1,6,36"데이터가 동적으로 생성되므로 1,5 OR 6,24,56 또는 4,54,23,2 등이 될 수 있습니다. 이것이 작동하지 않는 이유는 다음과 같습니다. –

+0

검색 배열에서 동적으로 SQL. – Barmar

관련 문제