안녕하세요. mysql delete 쿼리 문의 드립니다. 채택완료
인메모리
9년 전
조회 8,018
안녕하세요.
db에 들어가 있는 product 라는 테이블의 seq 행의 수가 5개가 넘어가면 최근 데이터 행 5개를 남기고 모두 삭제 하여라..
라는 쿼리를 만들고 있습니다.
delete from product order by seq limit 5
이거인데요.. 근데 이거는 지금 기준으로 뒤로 5개 지워라가 되더라구요;;;;
그래서 문의 드립니다.
not in 도 써보고 이것저것 써보는데 쿼리문 만드는데 어려움이 있습니다..
혹시 힌트 주셔도 감사하겠습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
9년 전
</p><p>DELETE FROM product WHERE seq < </p><p> (SELECT min(seq) FROM</p><p> (SELECT * FROM product ORDER BY seq LIMIT 0,5)</p><p> );</p><p>
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
9년 전
자답합니다~
</p><p>if($main_seq > 100 ) {
$sql = "select seq from product order by seq desc";
$rs=mysql_query($sql);</p><p> $arr = array();
$index = 1;
while($row = mysql_fetch_array($rs)){
$arr[$index]['seq'] = $row['seq'];</p><p> $index++;
}</p><p> $first = count($arr);</p><p> for($i=$first;$i>100;$i--){
$seq=$arr[$i]['seq'];</p><p> $sql= "delete from data where seq=".$seq;
$retVal = mysql_query($sql);
$sql= "delete from information where seq=".$seq;
$retVal = mysql_query($sql);
$sql= "delete from product where seq=".$seq;
$retVal = mysql_query($sql);
}
}</p><p>
로 해결 하였습니다^^;
위에께 안되더라구요;;
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인