Конечно, но я никогда не видел, чтобы кто-то пытался установить переменную и использовать ее в том же выражении, что и вы.Попробуйте:
SET @id := 10;
SELECT @id := 10 FROM songs WHERE id = @id;
или
SELECT @id := 10 FROM songs;
SELECT @id := 10 FROM songs WHERE id = @id;
Я использовал оба, и они оба, кажется, работают для меня.