gpt4 book ai didi

mysql - 函数在不同的服务器上变得区分大小写

转载 作者:行者123 更新时间:2023-11-30 22:55:06 25 4
gpt4 key购买 nike

我在 mysql 中创建了以下函数:

DELIMITER $$
CREATE FUNCTION fn_header_uploader_address(v_add varchar(500)) RETURNS bigint(20)
begin
DECLARE v_error bigint default 0;

IF length(v_add) > 100 then
set v_error = 110;
elseif v_add is null or v_add ='' then
set v_error=110;
elseif v_add NOT REGEXP '^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$' then
set v_error=110;
end if;
return v_error;

end$$
DELIMITER ;

如果我在本地运行它(确定性/非确定性子句),它会为以下语句返回零(有效电子邮件):

select fn_header_uploader_address('hello@gmail.com');

但是在将函数移动到新服务器时,这会区分大小写!!所以现在

select fn_header_uploader_address('hello@gmail.com'); ---- error 110

有什么帮助吗?

编辑:

我已经使用以下命令比较了服务器:

show collation where collation like '%_c%' ;
show variables like '%version%';

最佳答案

改变:

...
elseif v_add NOT REGEXP '^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$' then
...

或二进制:

...
elseif v_add NOT REGEXP '^[\x41-\x5a\x61-\x7a\x30-\x39\x2e\x2d\x5f\x25]+\x40[\x41-\x5a\x61-\x7a\x30-\x39\x2e\x2d]+\x2e[\x41-\x5a\x61-\x7a]{2,4}$' then
...

关于mysql - 函数在不同的服务器上变得区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26771726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com