반응형
3 개의 열이있는 데이터베이스가 있습니다.
user_id | lat | lon
1 |-1.403976 | 53.428692
2 |-1.353276 | 55.224692
etc etc
위도와 경도는 모두 십진수 필드로 설정됩니다. 나는 이와 유사한 쿼리를 실행하고 있지만 주어진 위도 / 경도 숫자보다 크거나 작은 것을 기준으로 필터링하지 않습니다.
SELECT * FROM `table` WHERE `lat` < '-1.399999' AND 'lat' > '-1.300000'
AND 'lon' < '55.555555' AND > '53.000000'
이 쿼리는 테이블의 모든 행을 반환하고 이유를 모르겠습니까? 필드가 소수로 설정되는 것과 관련이 있습니까?
누군가가 도울 수 있기를 바랍니다. 당신이 알고 있다면 아마도 간단한 대답 일 것입니다.
의견에 따라-다음은 생성 테이블입니다.
CREATE TABLE IF NOT EXISTS `members` (
`user_id` int(10) NOT NULL AUTO_INCREMENT,
`lat` decimal(8,6) NOT NULL,
`lon` decimal(8,6) NOT NULL,
UNIQUE KEY `user_id` (`user_id`),
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=136 ;
해결 방법
문제는 10 진수 값을 문자열 리터럴과 비교하도록하는 작은 따옴표로 열 이름을 래핑한다는 것입니다. 열 이름과 테이블 이름은 문자열 리터럴이 아닌 식별자이므로 작은 따옴표로 묶어서는 안됩니다.
AND `lat` > '-1.300000'
AND `lon` BETWEEN '55.555555' AND '53.000000' -- use between here
참조 페이지 https://stackoverflow.com/questions/15823450
반응형
'MySql' 카테고리의 다른 글
MySQL 특정 값에 대한 MySQL 개수 열 (0) | 2021.01.07 |
---|---|
MySQL 오류 1241 : 피연산자는 1 개의 열을 포함해야합니다. (0) | 2021.01.07 |
MySQL은 여러 열 삭제 (0) | 2021.01.06 |
MySQL 치명적 오류 : phpMyAdmin에서 실행 시간 30 초 초과 (0) | 2021.01.06 |
MySQL CURSOR ERROR 1193 : 알 수없는 시스템 변수 (0) | 2021.01.06 |
댓글