목록에 특정 필드가있는 경우 일부 레코드를 '필터링'하기 위해 많은 양의 코드가 있습니다. 표 구조와 현재 SELCT * FROM table1 ... AND value IN (8, 6, 4, 2, 9, 1, 3, 5, 7) ...
MySQL은 목록의 모든 값을 다른 목록의 값과 비교합니다.
:
CREATE TABLE IF NOT EXISTS `table1` (
`uniqueid` varchar(32) NOT NULL,
`value` int(11) DEFAULT NULL,
...
PRIMARY KEY (`uniqueid`)
)
는 지금은 별도의 테이블에 value
을 저장해야 잘 테이블에서 하나 이상의 '가치'가있을 수 있습니다.
새로운 표 구조 :
CREATE TABLE IF NOT EXISTS `table1` (
`uniqueid` varchar(32) NOT NULL,
...
PRIMARY KEY (`uniqueid`)
)
새로운 표 2 구조
CREATE TABLE IF NOT EXISTS `table2` (
`id` int(11) NOT NULL,
`uniqueid` varchar(32) NOT NULL,
`value` int(11) DEFAULT NULL,
...
PRIMARY KEY (`id`)
)
당신은 아이디어를 얻을!
제 질문은 uniqueid
에 대한 table2의 레코드가 첫 번째 예에서 주어진 목록에 있는지 확인하는 것입니다.
어떤 종류의 COUNT
하위 쿼리를 사용하는 것으로 간주되었지만 확실하지 않습니다. 나는 시도했다 :
SELECT * FROM table1, table2
WHERE table1.uniqueid = table2.uniqueid
AND (SELECT COUNT(id) FROM table1, table2
WHERE table2.uniqueid = table1.uniqueid) > 0
AND table2.value IN (8, 6, ...
그러나 그것은 wasnt한다. 그리고 나는 접근을 정말로 좋아하지 않는다, 매우 혼란하게 느낀다.
도움을 주시면 감사하겠습니다.
원하는 결과 세트를 제공 할 수 있습니까? –