ここでパンクしたタイヤを再発明する(ホイールを再発明する)必要はありません。
MySQLには2つのスペイン語の照合があります:
utf8_spanish_ci(現代スペイン語)andutf8_spanish2_ci(伝統的なスペイン語)
これらは、Nとnを一緒に照合する必要があることを十分に理解している言語を知っていますが、ÑとñはNとOの間で異なる文字です。スペイン語では、Ñは実際には別の文字であり、アクセントではありません。
列の照合をutf8_spanish_ciに設定すると、すべてが希望どおりに機能します。