为什么我的正则表达式不能正确回答?

时间:2018-02-03 12:35:04

标签: mysql sql function

我正在尝试编写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'

1 个答案:

答案 0 :(得分:0)

MySQL仅支持LIKE - %_中的ANSI标准通配符。

你想要一个正则表达式,特别是:

if pesel regexp '[0-9]' then

正则表达式匹配字符串中的任何位置,因此不需要通配符,只需要字符范围。