This is behaving as expected because your values are different. From your SQL fiddle:
INSERT INTO `online_communication` (`id`, `company_id`, `country_id`, `message`, `date_added`, `time_interval`) VALUES
(53, 1, 210, 'third message.....\r\nand here..\r\n', '2015-05-01 11:05:31', '1'),
(61, 1, 103, 'third message.....\r\nand here.. \r\n', '2015-05-01 11:06:38', '1');
Notice that the first insert does not have a space after the two periods, but the second one does. They look the same in the results, because the difference just represents white space.
EDIT
By definition, these are unique messages, so your query is fine. However, if you want to treat them as the same, you need to find a business rule for what defines them as the same.
For example, you could just remove all spaces from the string, and compare them that way:
SELECT DISTINCT REPLACE(message, ' ', '') FROM `online_communication`
Here is a working Fiddle example.
Here are some helpful string functions. Notice that you cannot use TRIM()
here because that function only removes whitespace from the beginning or end of a string. In this example, it is in the middle, so REPLACE
is more useful.