SELECT `name`, `image`, `descr`, ...
FROM `achievements`
WHERE `game_id` = :gameId
SELECT `a`.`id`, `a`.`name` AS `ach_name`, `g`,`name` AS `game_name`
FROM `achievements` AS `a`
JOIN `games` AS `g` ON `g`.`id` = `a`.`game_id`
WHERE `a`.`name` LIKE '%золото%'
Будет вычислено и приведено к логическому значение в while, результатом будет false. Соответственно, будет пропущен код в теле цикла while.