2013-08-29 2 views
1
CREATE TABLE `schedule` (
    `id` smallint(6) NOT NULL AUTO_INCREMENT, 
    `aircraftType` varchar(50) DEFAULT NULL, 
//...other fields 
    PRIMARY KEY (`id`), 
) ENGINE=MyISAM AUTO_INCREMENT=5611 DEFAULT CHARSET=latin1; 

CREATE TABLE `aircrafts` (
    `id` smallint(6) NOT NULL AUTO_INCREMENT, 
    `aircraftType` varchar(50) DEFAULT NULL, 
//...other fields 
    PRIMARY KEY (`id`), 
) ENGINE=MyISAM AUTO_INCREMENT=5611 DEFAULT CHARSET=latin1; 

SAMPLE 내용 :WHERE 절을 업데이트하여 동일한 데이터를 선택하는 방법은 무엇입니까? DB의 테이블의

표 "일정"

aircraftType = "320" 

표 "항공기"

aircraftType = "A320" 
aircraftType = "A330" 

검색어 :

SELECT * 
FROM Schedule F, Aircrafts A 
WHERE F.aircraftType = A.aircraftType; 

aircratf 유형 "320"과 "A320"이 WHERE 절에서 유사한 것으로 간주 될 수 있도록이 쿼리를 업데이트하는 방법은 무엇입니까? SUBSTRING()와 첫 번째 문자의

+0

동일한 데이터에 대해 열을 업데이트 하시겠습니까? – Mihai

+0

@Mihai 아니요, 추가 업데이트없이 동일한 데이터 만 선택하면됩니다. –

답변

1
SELECT * 
FROM Schedule F, Aircrafts A 
WHERE F.aircraftType = A.aircraftType LIKE CONCAT('%', F.aircraftType, '%') 

또는

LIKE CONCAT('\"','%', F.aircraftType, '%','\"')-added double quotes. 
+0

잘못된 DOUBLE 값을 잘라 버렸습니다 : '%' –

+0

방금 ​​편집 해보십시오. – Mihai

+0

흠 0 행 feched –

0

시도 절단 :

SELECT * 
FROM Schedule F, Aircrafts A 
WHERE F.aircraftType = SUBSTRING(A.aircraftType, 2) 

또는 @Mihai 같은

제안, 그냥에서 A이되지 않은 필드에 %을 넣어 :

SELECT * 
FROM Schedule F, Aircrafts A 
WHERE CONCAT('%', F.aircraftType) LIKE A.aircraftType 

하지만 가장 좋은 해결책은 동일한 관계 문자열에 대한 데이터를 업데이트하는 것입니다.

관련 문제