la intercalación predeterminada de la base de datos no distingue entre mayúsculas y minúsculas. por lo que el usuario admin y Admin o adMin son los mismos. Al crear el usuario, verifique en la base de datos si ya existe el mismo nombre de usuario o no.
parece que está utilizando una intercalación que distingue entre mayúsculas y minúsculas ... puede usar una intercalación que no distingue entre mayúsculas y minúsculas para esa tabla de usuario para que su consulta funcione bien.
o
mientras crea un usuario y verifica la base de datos en busca de entradas duplicadas, use LCASE
funcionan de la siguiente manera
SELECT * FROM USERS WHERE LCASE(username) = 'admin'