Имеется таблица вида:
CREATE TABLE IF NOT EXISTS `u` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`PERSCODE` varchar(15) DEFAULT NULL,
`CODEM` varchar(5) DEFAULT NULL,
`CODEU` varchar(15) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=14157 ;
В столбце CODEM хранятся записи вида: A123, A124, B567 и т.д.
Для выборки записей с одинаковыми значениями PERSCODE и CODEM использую запрос:
SELECT `u`.* FROM `u`
LEFT JOIN ( SELECT `PERSCODE`, `CODEM` FROM `u` GROUP BY `PERSCODE`, `CODEM` HAVING COUNT(*) > 1 ) AS `utemp`
ON ( `utemp`.`PERSCODE` = `u`.`PERSCODE` AND `utemp`.`CODEM` = `u`.`CODEM` )
WHERE `utemp`.`PERSCODE` IS NOT NULL ORDER BY `u`.`PERSCODE`
Можно ли как-то средствами MySQL провести сравнение данных поля CODEM не на полное соответствие, а на совпадение первых 3 символов, например, чтобы А010 = А012?
Функция STRCMP() в MySQL сравнивает строки полностью. Можно ли как в функции strcmp() PHP задать количество проверяемых символов?