2012-05-16 4 views
0

데이터베이스에 이미 있는지 확인하려는 값의 배열이 있습니다. 이 배열은 최대 100 개의 요소까지 커질 수 있습니다. 그것을 확인하는 가장 좋은 방법은 무엇입니까? 모든 테이블 데이터를 가져 와서 대조해야합니까? 해야합니까/나는 이것을 1 개의 SQL 문장에서 할 수 있습니까? 그렇다면 어떻게? PHP를 사용하고 있습니다.배열의 어떤 값이 MySQL에 있는지 어떻게 확인할 수 있습니까?

편집 :

내가 그럼 내가 거기에없는 사람을 추가 할 수 있습니다 데이터베이스에있는 것을보고 확인하고 있음을 추가해야합니다. 어쩌면 내가 생각했던 것보다 나은 해결책이있을 수 있습니다.

+0

어떤 서버 측 언어를 사용하고 있습니까? –

+0

내가 얼마나 바보 같은 말을 잊지! PHP – Strawberry

답변

4

나는

$sql = "SELECT name FROM tablename WHERE name IN ('".implode("','", $array_of_names)."')"; 
+0

귀하의 가정은 정확합니다! – Strawberry

+0

이것은 데이터베이스에있는 것을 리턴합니다. 어떤 사람들이 그렇지 않은지 어떻게 말할 수 있습니까? 왜냐하면 나는 새로운 것을 삽입하려고하기 때문에. – Strawberry

+0

두 배열을 비교하려면 ['array_diff()'] (http://us3.php.net/manual/en/function.array-diff.php)를 사용하십시오. 남아있는 것이 데이터베이스에 없습니다. –

1

은 다음과 같이 동적으로 문을 작성 PHP 가정입니다 :

select * 
from table 
where value in (3, 5, 8, 12, 17, (etc)) 

당신이 사용하는 어떤 언어로 배열에서 값 목록을 생성한다.

관련 문제