【发布时间】:2016-04-18 12:27:22
【问题描述】:
在我的代码中,我将一个字符串变量 ('4,5,6') 传递给我的存储过程,该过程从这个字符串 (4,5,6-Name) 分解而来。我在存储过程中使用 IN 子句,我知道 IN 子句接受 ('4','5','6') 或只是 (4,5,6) 这种类型的数据,但我无法在我的存储过程。如果有任何其他方法可以实现它,请帮助我。
CREATE DEFINER = 'root'@'localhost'
PROCEDURE kbm.report_site_transfer(IN siteid VARCHAR(50), IN datefrom VARCHAR (15), IN dateto VARCHAR (15))
SELECT
*
FROM
tbl_transfer
WHERE
tbl_transfer.siteNameID IN (siteid) AND (tbl_transfer.paymentDate BETWEEN datefrom AND dateto);
【问题讨论】:
-
site_id的值是多少 -
@Uchiha 实际上我正在分解一个字符串 (4,5,6-anyname) 并用“-”分隔符分解它,并希望在 IN 子句 (4,5,6) 中使用第一个值但是当我检查 php 中的类型时,它显示一个字符串,所以我无法在存储过程的 IN 子句中使用
-
查看动态创建和执行查询字符串stackoverflow.com/questions/8549619/…。您需要在传递的参数中添加周围的单引号。
-
@PaulF 我已经检查过了,但对我不起作用
-
你能显示你用来创建字符串的代码吗?
标签: php mysql stored-procedures