There was a recent discussion in a FileMaker developer forum the FileMaker Community forum by Dan Shockley regarding “equality in FileMaker,” after he noticed that FileMaker considers the text characters =
and ≠
to be equal to each other. This seems illogical because these mathematical symbols have the exact opposite meaning, equal to and not equal to, respectively.
The problem:
As you can see in the FileMaker Pro Advanced Data Viewer, if we evaluate the expression "=" = "≠"
to compare these two single-character text strings, we see the result is 1
, which also means true
. By contrast, if we use the Exact function with the expression Exact ( "≠" ; "=" )
, we see that the result is 0
, or false
, as we would expect.
So what is going on here?
FileMaker’s default =
operator is case-insensitive. This is what allows us to be a little loose when comparing text strings. In essence saying, “I know you entered tim
, but you meant Tim
, so we’ll call those equal.” But ≠
isn’t a different case of =
, right? Well, it turns out, it goes beyond just being case-insensitive.
Straight from the horse’s mouth
One of the great things about the FileMaker Community forum is that FileMaker staff actively monitor and respond to posts. There is a dedicated area to report product issues, also known as “bugs.” Dan reported the issue in the post not-equals character is wrongly “same” as equals character. The FileMaker employee known as TSGal responded with an explanation. The reason for this behavior is because FileMaker uses the standard Unicode collation rules for these comparisons. This is what allows it to go beyond case-insensitivity, and also consider things like accented versions of characters to be equal. For example e
is equal to é
. In this case ≠
is considered an accented version of =
.
Conclusion
As it turns out, this is not a bug, it is the expected behavior. We would consider it more of a “gotcha” that you need to be aware of. And it’s based on a Unicode standard, so it is not something that FileMaker could change, even if they wanted to. If you find yourself in a situation where you need to compare these two characters (or a string that uses them), you will have to use Exact
instead of =
.
If you would rather focus on running your business than comparing equality symbols, let our brilliant developers build your business-critical custom software. Contact us today to get the conversation started.