我试图在MySQL存储过程中将数组作为字符串传递,但它不能正常工作.
这是我的SQL代码:
CREATE DEFINER=`root`@`localhost` PROCEDURE `search_equipment`(IN equip VARCHAR(100), IN category VARCHAR(255))
BEGIN
SELECT *
FROM Equipment
WHERE e_description
LIKE CONCAT("%",equip,"%")
AND e_type IN (category)
END
Run Code Online (Sandbox Code Playgroud)
以下是我称之为程序的方式:
String type = "'I.T. Equipment','Office Supply'";
CALL search_equipment('some equipment', type);
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我的问题与SQL到SQL IN参数的String的Python列表有些相同,但是我有一个整数列表。我使用的python代码是:
ids = [1000032, 1000048]
sql = 'SELECT CompNo, CompName, CompType FROM Component WHERE DeptID IN (?)'
cursor.execute(sql, [','.join(ids)])
Run Code Online (Sandbox Code Playgroud)
Sybase数据库引擎的响应为:
pyodbc.Error: ('07006', "[07006] [Sybase][ODBC Driver][SQL Anywhere]Cannot convert '1000032','1000048' to a numeric (-157) (SQLExecDirectW)")
Run Code Online (Sandbox Code Playgroud)
正确的方法是什么?