我在 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');
但它不工作..
我在 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');
但它不工作..
像这样的东西应该工作:
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) ...
您需要根据存储过程的输入来构建查询,否则这应该适合您。发布您当前的过程?
编辑
该find_in_set
函数也适用于您,但您仍然必须拆分输入并为每个传递给 proc 的数字调用一次(即第一个参数FIND_IN_SET
不能是逗号分隔的列表)。参考这里:http ://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set