您可以使用CASE表达式:
SELECT id AS columnAlias FROM `MY_TABLE`
ORDER BY CASE @sortBy WHEN 'updated_at' THEN updated_at
WHEN 'user_id' THEN user_id
ELSE id END;
有些人使用动态sql,但是CASE表达式解决方案很好,因为它会根据一组固定的列自动检查输入,因此您不会偶然导致sql注入漏洞。