Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Проверить формат varchar. my SQL

1287  1 2 3 4 все
NightWatch коренной житель21.06.21 23:50
NightWatch
NEW 21.06.21 23:50 
в ответ NightWatch 21.06.21 23:20
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:]]?$')
#61 
melodi_ постоялец22.06.21 00:14
NEW 22.06.21 00:14 
в ответ NightWatch 21.06.21 23:17, Последний раз изменено 22.06.21 00:15 (melodi_)
А вот если бы в конце стояло $, то мы бы имели еще одно правило:

Правило с $ проверяется с права на лево и спотыкается на этом месте из за [0-9]{1}

55A5AAA$B

???


#62 
Murr патриот22.06.21 02:12
Murr
NEW 22.06.21 02:12 
в ответ melodi_ 22.06.21 00:14

$ проверяется с права на лево

-----

Еще есть вариант - сверху вниз... а если не пойдет - снизу вверх...


Может пора начать следовать правилу RTFM? смущ

#63 
Murr патриот22.06.21 02:58
Murr
melodi_ постоялец28.06.21 17:21
NEW 28.06.21 17:21 
в ответ melodi_ 21.06.21 21:44, Последний раз изменено 28.06.21 17:41 (melodi_)

Задание выполнено не правильно, 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

#65 
1 2 3 4 все