将逗号分隔的参数传递给mysql中的存储过程

时间:2013-01-29 07:26:15

标签: mysql

我在mytable tab1中有字段:

col1     | col2     | id
--------------------------
1,2,3    | 2,3,4,5  | a1
6,7,8,9  | 2,9,11   | a2

我想将此字段传递给我的存储过程输入,如where col1 in ('1,2') and col2 in ('3,4');

但它不起作用..

1 个答案:

答案 0 :(得分:0)

这样的事情应该有效:

SELECT t.* FROM tab1 t 
 WHERE 1 IN (t.col1) AND 2 IN (t.col1) ...
  AND 3 IN (t.col2) AND 4 IN (t.col2) ...

您需要根据存储过程的输入构建查询,否则这应该适合您。发布你当前的proc?

修改

find_in_set函数也适用于您,但是您仍然需要拆分输入,并且每传递给proc的数字调用一次(即FIND_IN_SET的第一个参数不能是逗号分开的清单)。参考此处:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set