나는 PHP 멍청하다.mysql에 레코드를 추가 한 후에 추가 된 고유 레코드의 결과를 보려면 어떻게해야합니까?
매주 CSV로 업데이트 할 데이터베이스가 있습니다. 지금까지 파일을 서버에 업로드하고 PHP로 파일을 열고 테이블에 데이터를 삽입했습니다.
이제 화면 (또는 파일)에 추가 된 고유 한 레코드를 반환하고 싶습니다. 어떻게해야합니까?
나는 PHP 멍청하다.mysql에 레코드를 추가 한 후에 추가 된 고유 레코드의 결과를 보려면 어떻게해야합니까?
매주 CSV로 업데이트 할 데이터베이스가 있습니다. 지금까지 파일을 서버에 업로드하고 PHP로 파일을 열고 테이블에 데이터를 삽입했습니다.
이제 화면 (또는 파일)에 추가 된 고유 한 레코드를 반환하고 싶습니다. 어떻게해야합니까?
무엇이 독특합니까? 스키마에 대한 정보가 조금 더 필요합니다.
어쨌든 date_added
열을 기본값으로 CURRENT_TIMESTAMP
에 쉽게 추가 할 수 있습니다. 그런 다음 date_added
을 내림차순으로 정렬하여 추가 된 항목을 찾을 수 있습니다.
고유 한 결과 만 가져 오는 것과 관련하여 ... 고유 한 행을 다시 삽입하면 안됩니다. 따라서 올바르게 수행하지 않으면 date_added
은 새로운 항목 만 반영합니다.
먼저 테이블에 date_added
열을 추가 : 변경하지 않아도
ALTER TABLE your_table ADD COLUMN date_added TIMESTAMP DEFAULT CURRENT_TIMESTAMP
DEFAULT CURRENT_TIMESTAMP
는 자동으로 현재 날짜를 사용하여 처리됩니다 여기
INSERT
코드에 대해 대신에이 칼럼으로
, 당신은 지금 쉽게 특정 날짜에 추가 된 레코드를 확인할 수 있습니다
-- Rows for March 29, 2010
SELECT DISTINCT * FROM your_table WHERE DATE(`date_added`) = '2010-03-29';
DISTINCT
는 당신이 해당 날짜에 추가 된 고유의 행을 참조 할 것.
SELECT DISTINCT * FROM your_table WHERE DATE(`date_added`) = CURRENT_DATE;
당신이 기억해야 할 유일한 것은 열이 존재하지 않았기 때문에 기존 레코드는, 0의 일을하는 것입니다 :
는 여기에 "오늘의 기록"끌어 또 다른 편리한 쿼리입니다 그들의 삽입 시간. 당신은 타임 스탬프와 함께 새 행을 삽입하는 경우
, 당신은이
// Insert CSV into the DB with this timestamp
$todays_insert_time = time();
...
// Get unique rows from today
$unique_rows = mysql_query("SELECT DISTINCT `whatever_column_makes_the_row_unique` FROM `some_table` WHERE `insert_time`=" . $todays_insert_time);
감사 매트 같은 것을 할 수 있습니다. 데이터베이스에 하나의 열만 있으므로 각 레코드가 고유합니다. – billy
@ 빌리 그때는 충분히 간단합니다. 코드 샘플에 대한 편집을 참조하십시오. – Matt