MySQL: Why is the `length` (byte length) of a string in a `varchar` field shorter than the actual string?
The table character set is different to your client character set. So when you type 'ÂÂÂÂ' into your client, you are referring to a different string than the result of select testdata from test1; When you ran insert into test1 (testdata) VALUES('ÂÂÂÂ'); there was an implicit conversion to the latin1 charset, which only needs 1 byte per character for the string. No such conversion happens when you type length('ÂÂÂÂ') into your client.