http://dev.mysql.com/doc/refman /5.0/en/create-index.html
"Indeks UNIK membuat batasan sehingga semua nilai dalam indeks harus berbeda. Terjadi kesalahan jika Anda mencoba menambahkan baris baru dengan nilai kunci yang cocok dengan baris yang ada. Batasan ini tidak berlaku untuk nilai NULL kecuali untuk Mesin penyimpanan BDB. Untuk mesin lain, indeks UNIK memungkinkan beberapa nilai NULL untuk kolom yang dapat berisi NULL."
Jadi, tidak, Anda tidak bisa membuat MySQL memperlakukan NULL sebagai nilai unik. Saya kira Anda memiliki beberapa pilihan:Anda dapat melakukan apa yang Anda sarankan dalam pertanyaan Anda dan menyimpan "nilai khusus" alih-alih nol, atau Anda dapat menggunakan mesin BDB untuk tabel. Namun, menurut saya perbedaan kecil dalam perilaku ini tidak membuat pilihan mesin penyimpanan yang tidak biasa.