의 데이터가 나는 테이블과 같이 있습니다- 스프레드 시트
People
-----------------
email_address
created_date
나는 또한 약 6 만 전자 메일 주소와 스프레드 시트를 가지고있다. 스프레드 시트에서 각 전자 메일 주소에 대해 "created_date"를 선택해야합니다. 나는 현재를 접근하고 방법은 IN 절과 하나의 큰 선택 문을 만드는 것입니다 :
SELECT email_address, created_date FROM People WHERE email_address in (
'[email protected]',
'[email protected]',
'[email protected]',
...
이의 문제는 거대한 스크립트 (60,000 라인)이며, 심지어 그것을 얻을 수 없다는 것입니다 "max_allowed_packet '바이트보다 큰 패킷을 얻었으며"MSQL 서버가 없어졌습니다 "와 같은 오류로 인해 실행됩니다.
나는 이러한 오류를 max_allowed_packet 등을 늘림으로써 해결할 수 있을지 모르지만, 나는 그것이 단지 SQL이 짜증나는 증상일지도 모르며 단지 증상을 치료하는 대신 문제를 해결하고 작성해야한다고 생각한다. 더 나은 SQL. 의견이 있으면 알려주세요.
감사를 검색 할 수 있습니다! SQL에서 강하지 않다, 당신은 임시 테이블에 삽입하기 위해 큰 INSERT 문을 쓰는 것을 의미합니까? 아니면 대량의 데이터를 삽입하는 다른 방법이 있습니까? – JasonStoltz
아마도 가장 간단한 방법은 스프레드 시트의 전자 메일 열을 텍스트 파일로 저장하고 일부 MySQL 관리 프로그램을 사용하여 텍스트 또는 csv (단 하나의 열만 있음)로로드하는 것입니다. IIRC MySQL은 테이블을 위해 별도의 파일을 사용하기 때문에 전체 데이터베이스에 영향을 미치지 않고 테이블을 추가하고 제거 할 수 있습니다. –
좋습니다, 감사합니다. 사실,이 경우 다른 곳으로 옮길 수있는 스크립트를 만들어야합니다. 가능한 한 쉽게 만들기 위해 모든 관리 도구 사용을 피할 것입니다. – JasonStoltz