Estou usando o procedimento armazenado jaro winkler aqui: https://gist.github.com/TheHiddenHaku/7229861 . Isso funciona bem no meu servidor MySQL local (versão 8.0.19), mas ao tentar usar a mesma função no servidor MySQL da OVHCloud (versão 8.0.26) está falhando com o erro Unknown column '' in 'field list'
.
Estou testando com várias declarações:
select jws('test','test1')
select jws("test","test1")
select jws(myColumn, 'test1') from myTable;
E todas as consultas resultam no mesmo erro.
Parece que seu servidor está usando
sql_mode=''
. O servidor MySQL da OVHCloud possui sql_modeANSI,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,STRICT_ALL_TABLES
.ANSI ativa o modo ANSI_QUOTES que interpreta aspas duplas (
"
) como nome de campo. Seu procedimento armazenado jaro winkler usa aspas duplas para definir strings string="value" (l.16, 17 e 38).Sem
ANSI_QUOTES
, o MySQL lê: variável string é igual a valor.Com
ANSI_QUOTES
, MySQL lê: variável string é igual ao valor do campo chamado "valor".Você precisa atualizar seu procedimento armazenado para usar aspas simples (
'
) para definição de string.