A couple thoughts about multiple-value fields, subsequent to writing this:
I understand that the absence of order in multiple-value fields is a natural consequence of the obvious way of implementing them in a relational database. It probably doesn’t matter much for Genres. However, I just checked, and the same situation occurs with Actors. That’s not good: the order in which actors are billed has meaning, and shouldn’t be arbitrarily rearranged.
I think the current list of conditional criteria for multiple value fields is not very useful:
Contains
Does not contain
Ends with
Is
Is not
Starts with
As Elder-Sage thought, I suspect most people would expect Genre Is Comedy to select videos whose only Genre is Comedy; intuitively, we would think we should use Genre Contains Comedy to get videos where any Genre is Comedy (which is what Is actually does now, though Contains has the same effect in practice).
I suggest these conditions:
Has all of
Has any of
Has exactly
Has only
Does not have all of
Does not have any of
Does not have exactly
Does not have only
If we had videos with these Genres:
Comedy
Comedy, Drama
Comedy, Drama, Romance
Comedy, Romance
Drama
Drama, Romance
Romance
none (no Genres specified)
Genre Has all of Comedy, Romance would select:
Comedy, Drama, Romance
Comedy, Romance
Genre Has any of Comedy, Romance would select:
Comedy
Comedy, Drama
Comedy, Drama, Romance
Comedy, Romance
Drama, Romance
Romance
Genre Has exactly Comedy, Romance would select:
Comedy, Romance
Genre Has only Comedy, Romance would select:
Comedy
Comedy, Romance
Romance
Genre Does not have all of Comedy, Romance would select:
Comedy
Comedy, Drama
Drama
Drama, Romance
Romance
none
Genre Does not have any of Comedy, Romance would select:
Drama
none
Genre Does not have exactly Comedy, Romance would select:
Comedy
Comedy, Drama
Comedy, Drama, Romance
Drama
Drama, Romance
Romance
none
Genre Does not have only Comedy, Romance would select:
Comedy, Drama
Comedy, Drama, Romance
Drama
Drama, Romance
none
Note that with only a single value specified (e.g., Genre Has any of Comedy), Has all of and Has any of are the same (and are the same as what is now Is); Has exactly and Has only are the same; Does not have all of and Does not have any of are the same; and Does not have exactly and Does not have only are the same (and are the same as what is now Is not).
For compatibility, what is now Is could be translated to Has all of and Is not to Does not have exactly. Contains could stay as it is (perhaps with some attention to what happens when multiple values are specified in the conditional), but my guess is that most of the time people are using it because they think it’s needed to do what Is actually does. Does not contain is both confusing and useless as it stands.
Bookmarks