我正在尝试编写sql函数,它返回“正确”时,它是唯一的数字,但总是返回false。
enter drop function if exists findByPesel;
delimiter $$
create function findByPesel(pesel varchar(11) ) returns varchar(255) deterministic
begin
declare message varchar(255) default 'nothing';
declare peselid varchar(12);
declare findByPesel varchar(12);
if pesel like '%[0-9]%' then
set message ='correct';
else
set message ='Not correct pesel. Write a pesel consisting of digits greater than zero';
end if;
return message;
end $$
delimiter ;
select findByPesel('3') as result;
结果'不正确的pesel。写一个由大于零的数字组成的pesel'
答案 0 :(得分:0)
MySQL仅支持LIKE
- %
和_
中的ANSI标准通配符。
你想要一个正则表达式,特别是:
if pesel regexp '[0-9]' then
正则表达式匹配字符串中的任何位置,因此不需要通配符,只需要字符范围。