Abaixo de dois sql estava funcionando bem com MariaDB 10.5.8 e MySQL 5.7
SET @curRow=0;
select @curRow := @curRow + 1 AS row_number, `users`.`name` from `users`
ou
select ROW_NUMBER() OVER (ORDER BY users.id) AS row_number, `users`.`name` from `users`
Mas quando executo no MariaDB 11.1.2 gera erro: Query 1 ERROR: You have an error in your SQL sintaxe; verifique o manual que corresponde à versão do seu servidor MariaDB para obter a sintaxe correta a ser usada perto de 'row_number, users
. name
de users
'na linha 1
Eu verifiquei com ChatGPT 3.5. Ele me sugere
SELECT row_number FROM (
SELECT @curRow := @curRow + 1 AS row_number, name
FROM users, (SELECT @curRow := 0) r
) AS subquery_alias
O erro que você está encontrando é porque você não pode usar uma variável definida pelo usuário para gerar números de linha diretamente na cláusula SELECT e depois referenciá-la na mesma cláusula SELECT no MariaDB. Em vez disso, você deve usar uma subconsulta ou uma expressão de tabela comum (CTE) para conseguir isso. Veja como você pode reescrever sua consulta usando uma subconsulta.
Mas isto não está funcionando. Então, o que fazer no MariaDB 11?