有没有办法在MySQL的WHERE子句中'interpoloate'一个列的值作为比较运算符?

Is there a way to 'interpoloate' a column's value as the comparison operator in the WHERE clause in MySQL?

假设我有一个名为 "comparison_operator" 的列,其值如“>”、“=”、“<”。在 "products" table 中。有没有办法像下面这样在 WHERE 子句中使用它?

SELECT products.name FROM products WHERE products.price #{comparison_operator} products.cost

我认为这个问题的答案是否定的,但想看看是否有其他方法可以达到同样的目的。谢谢!

是的,但不是那样的。

CASE
  WHEN products.comparison_operator = ">"
    THEN products.price > products.cost
  WHEN products.comparison_operator = "<"
    THEN products.price < products.cost
  ELSE
    products.price = products.cost
END