【发布时间】:2012-10-18 10:30:22
【问题描述】:
假设我有一个具有SELECT 语句的 SP,如下所示,
SELECT product_id, product_price FROM product
WHERE product_type IN ('AA','BB','CC');
但是到IN 子句的数据必须通过包含值字符串的单个变量。下面的东西链接
SELECT product_id, product_price FROM product
WHERE product_type IN (input_variables);
但它不是那样工作的。知道怎么做吗?
【问题讨论】:
-
input_variables来自哪里?php? -
它实际上是从 cron 作业直接执行 MYSQL,因此它是 SP 的输入参数之一。用户输入它们取决于他们想要什么数据。
-
所以你的意思是它是单个变量中的逗号分隔值?
-
应该是。但我可以按照我想要的方式进行(如果我找到正确的方法:)),但这将是用户输入。
-
你不能。单个变量,即使它是逗号分隔值,也会被解释为单个值。例如,您有变量
x = '1','2','3','4'。当您像这样将其传递给inWHERE y IN (x)时,它将被解释为WHERE y IN ('1,2,3,4')而不是WHERE y IN ('1','2','3','4')
标签: mysql variables stored-procedures in-clause