I have a system that searches for company. I want that when a user searches for \"Demo\", all records that have \"Demo\" will be returned, like \"The Demo\", \"Demo Inc.\",
You can use REGEXP and the [[:<:]] and [[:>:]] word boundary markers:
[[:<:]]
[[:>:]]
SELECT * FROM `table` WHERE company REGEXP '[[:<:]]Demo[[:>:]]';
Another Solution
SELECT * FROM `table` WHERE company REGEXP '(^|[[:space:]])Demo([[:space:]]|$)';
SQL Fiddle Demo