Hello all,

I have a strange one here but there’s probably a very simple solution (though I’ve been unable to google it).

I have a varchar(100) column called name (t.string :name, :limit => 100, :null => false).

I have a …

validates_uniqueness_of :name,

:scope => :event_group_id,

:case_sensitve => false

which is producing the following SQL …

SELECT FROM event_categories WHERE ( = BINARY ‘road’ AND event_categories.event_group_id = 790727023) LIMIT 1;

Note the BINARY in the query. How could this happen?

I have other requests to that table (JQuery autocomplete, for example) and it doesn’t introduce the BINARY.

I am running MySQL version 5.1.49-1ubuntu8.1

Rails 2.3.8

Any pointers would be great



Since, by default, MySQL is case-insensitive, that is the way that a case-SENSITIVE comparison is made. Does it make a difference if you take the “:case_sensitive => false” off of the validation?


Rob Biedenharn

No. In fact, I only added the case_sensitive flag to see if made a difference.