Another one: if you happen to keep big numerical values in a VARCHAR field, be careful, the engine will convert them to DOUBLE when comparing to a big integer, and interesting things will happen. For example, "SELECT id, clmn FROM tbl WHERE clmn = 999999999999999999" may return records where `clmn` is '999999999999999999', also where `clmn` is, for example, '999999999999999998' (because those big integers are too big for DOUBLE and, when converted, they have the same representation).
So the correct query is "SELECT id, clmn FROM tbl WHERE clmn = '999999999999999999'"
So the correct query is "SELECT id, clmn FROM tbl WHERE clmn = '999999999999999999'"