Похоже, у вас нет необходимости в LIKE, будет работать простая проверка на равенство:
$SQL = "SELECT * FROM `user_posts` WHERE (`post` = '@".$user."')";
Имейте в виду, у вас есть возможность инъекции SQL здесь и должны использовать mysql_real_escape_string
:
$SQL = sprintf("SELECT * FROM `user_posts` WHERE (`post` = %s)", mysql_real_escape_string('@' . $user));
Если вы хотите найти @Joe внутри поста, вы можете добавить пробелы вокруг вашего элемента, но это будет выполняться медленно:
$SQL = sprintf("SELECT * FROM `user_posts` WHERE (`post` LIKE %s)", mysql_real_escape_string('% @' . $user . ' %'));
Для исполнения используйте FULLTEXT index:
$SQL = sprintf("SELECT * FROM `user_posts` WHERE MATCH (post) AGAINST (%s)", mysql_real_escape_string('@' . $user));