I expected this query to return all columns as 0, how is the right expression 1?
select (not(55))=1, !(55)=1, not(55)=1 ;
+-------------+---------+-----------+
| (not(55))=1 | !(55)=1 | not(55)=1 |
+-------------+---------+-----------+
| 0 | 0 | 1 |
+-------------+---------+-----------+
I find this surprising that NOT and ! aren't equivalent, and that the parens are significant.
[edit: simplified the query from original post]
in your first column the code is like (mysql perform an implicit evaluation of the code (55)=0 )
then