有没有办法在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
假设我有一个名为 "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