如何更新WHERE子句以选择相同的数据?

时间:2013-08-29 13:52:42

标签: mysql where

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;

数据库表的示例内容:

表"时间表"

aircraftType = "320"

表"飞机"

aircraftType = "A320"
aircraftType = "A330"

查询:

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

如何以aircratf类型" 320"的方式更新此查询。和" A320"在WHERE子句中会被认为是类似的吗?

2 个答案:

答案 0 :(得分:1)

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

OR

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

答案 1 :(得分:0)

尝试使用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

但最好的解决方案是更新相同关系字符串的数据。