How to solve this matrix equation

mat = ({{1, x, 3}, {2, 4, 5}, {2, 4, x}});
Select[MatrixRank[mat /. #] == 2 &][Solve[Det[mat] == 0, x, Reals]]

{{x -> 2}, {x -> 5}}


Solutions force exactly one eigenvalue to be zero. So we solve for the condition that an eigenvalue vanish, and check that rank is two.

mat = {{1, x, 3}, {2, 4, 5}, {2, 4, x}};
candidateSols = Flatten[Map[Solve[# == 0, x] &, Eigenvalues[(mat)]]]

(* Out[997]= {x -> 2, x -> 5} *)

Both pass the test:

Map[MatrixRank[mat /. #] &, candidateSols]

(* Out[995]= {2, 2} *)

A not so good answer

Cases[Table[{x, MatrixRank[({{1, x, 3}, {2, 4, 5}, {2, 4, x}})]}, {x, -10, 10, 1/10}], {_, 2}]

gives out

{{2, 2}, {5, 2}}

So the answer is 2 or 5.