Проверить формат varchar. my SQL
CREATE FUNCTION validate_flight_number(fln varchar(8)) RETURNS int(11) RETURN if(fln is null, 0, fln regexp '^[[:alnum:]]{2}[[:alpha:]]?[[:digit:]]{1,4}[[:alpha:]]?$')
А вот если бы в конце стояло $, то мы бы имели еще одно правило:
Правило с $ проверяется с права на лево и спотыкается на этом месте из за [0-9]{1}
55A5AAA$B
???
$ проверяется с права на лево
-----
Еще есть вариант - сверху вниз... а если не пойдет - снизу вверх...
Может пора начать следовать правилу RTFM?
Задание выполнено не правильно, 0 Пунктов((( Буду завтра спрашивать зачем там нужен селект, если функции нужен параметр...но как то так. должно было быть так:
/* c) */
CREATE FUNCTION `validate_flight_number`(fln varchar(8)) RETURNS int
BEGIN
DECLARE fieldresult int;
select fln regexp '^[A-Za-z0-9][A-Za-z0-9][A-Za-z]?[0-9][0-9]?[0-9]?[0-9]?[A-Za-z]?$' into fieldresult;
RETURN fieldresult;
END
Мое:
CREATE FUNCTION validate_flight_number(fln varchar(8)) RETURNS int
BEGIN DECLARE result_c int;
IF char_length(fln) >= 3 and fln regexp '^[a-zA-Z0-9]{2}[a-zA-Z]?[0-9]{1}[0-9]?[0-9]?[0-9]?[a-zA-Z]?$' then set result_c = 1;
else set result_c = 0;
END IF;
RETURN result_c;
END