주어진 열의 행 데이터에서 여러 값과 범위에 대한 SQL SELECT 쿼리.열의 여러 값과 범위에 대한 SQL SELECT 쿼리
문제점 설명 :
서버 : MySQL의
베이스 : Customer
테이블 : Lan
칼럼 : Allowed VLAN
는 (범위 1-4096에)
하나의 행이 열에서 다음과 같이 데이터가 Allowed VLAN
:
180,181,200,250-499,550-811,826-mismatched
SELECT
명세서 WHERE
열 Allowed VLAN
에 주어진 번호 (예 : '600'
)가 필요합니다. 주어진 숫자 '600'
은 쉼표로 구분 된 값 중 하나이거나 "250-499", "550-811"범위에 포함되거나 "826- 불일치"범위의 시작 번호 값일뿐입니다. 내가 데이터를 처리하는 방법을 알아낼 수
SELECT * WHERE `Allowed VLAN`='600' OR `Allowed VLAN` LIKE '%600%' OR (`Allowed VLAN` BETWEEN '1-1' AND '1-4096');
는 WHERE 절과 범위. explode() split 함수 등을 사용하여 PHP 코드 문제를 해결했지만 일부 SQL SELECT 솔루션이 있다고 생각합니다.
나는 어떤 도움을 주시면 감사하겠습니다.
내가 드릴 수있는 최선의 조언은 데이터 구조를 수정하는 것입니다. 허용되는 값은 각 범위 또는 개별 값에 대해 다른 행이있는 별개의 테이블에 있어야합니다. –
예, 정확합니다. 데이터 구조가 이상합니다. 데이터베이스 디자인은 고객 측에서 오는 것이 아니며 변경 여부를 확신 할 수 없습니다. – user2409597