sql 에서 이런건 어떻게 하나요?
글쓴이: fruitsclipper / 작성시간: 토, 2012/02/04 - 6:36오후
글이 연속으로 2개가 올라갔습니다. 삭제 어떻게 하나요?
다음과 같이 table 에 날짜와 그 날짜의 index 가 저장되어 있습니다.
2012.01.02 0
2012.01.05 1
2012.01.08 2
2012.01.07 에 대한 index 값을 찾으려면, 데이터가 없으므로 아무것도 안나옵니다,
대신에 2012.01.07 일 바로 이전의 값인 2012.01.05 일의 index 인 1 의 값을 가져오도록 하고 싶습니다.
이것을 sql 로 효율적으로 처리하려면 어떻게 해야 할까요?
Forums:
요렇게 하면 될듯합니다.
mysql> select * from table where date <= '2012-01-07' limit 1;
날짜는 DATE 타입.
답변 감사합니다, 그런데 이렇게 하면
답변 감사합니다, 그런데
이렇게 하면 2012-01-07 최근의 날짜가 나오는게 아니라, 2012-01-07 이전의 날짜중에서 가장 멀리있는 첫번째 날짜가 나옵니다.
아 그런데 날짜는 date 타입이 아니에요,
아 그런데 날짜는 date 타입이 아니에요, sqlite 라서 date 타입이 따로 없길래 그냥 text 로 집어넣었습니다
음..
sqlite를 제대로 써본적이 없어서....
sqlite에서 date타입를 지원하지 않는다면,
날짜를 timestamp 로 변경해서, int타입으로 저장해서 사용하면 될거 같습니다.
위에서 order 를 변경하면
제일 가까이 있는 것을 뺄 수 있을 것 같네요 ^^;
위엣분 말 대로 ORDER을 변경 하면 되겠네요...
mysql> SELECT * FROM `table` WHERE `date` <= '2012-01-07' ORDER BY `date` DESC limit 1;
이렇게?
나의 모든 생명은 단 한 명의 소녀를 위하여.
댓글 달기