2013-08-29 1 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; 

ОБРАЗЕЦ СОДЕРЖАНИЕ DB TABLES:Как обновить предложение WHERE, чтобы выбрать идентичные данные?

Таблица "Расписание"

aircraftType = "320" 

стол "Самолеты"

aircraftType = "A320" 
aircraftType = "A330" 

Запрос:

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

Как обновить этот запрос таким образом, чтобы типы aircratf «320» и «A320» считались схожими в предложении WHERE?

+0

Shoudnt вы обновляете столбец для идентичных данных? – 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

Hmm 0 rows feched –

0

Try разрезание первого символа с SUBSTRING():

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 

Но лучшим решением было бы обновление данных для идентичной строки отношений.

Смежные вопросы