Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将逗号分隔的参数传递给mysql中的存储过程_Mysql - Fatal编程技术网

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

将逗号分隔的参数传递给mysql中的存储过程,mysql,Mysql,我的表tab1中有字段: col1 | col2 | id -------------------------- 1,2,3 | 2,3,4,5 | a1 6,7,8,9 | 2,9,11 | a2 我想将这些字段传递给存储过程输入,如中的col1 in('1,2')和col2 in('3,4') 但是它不起作用 像这样的方法应该会奏效: SELECT t.* FROM tab1 t WHERE 1 IN (t.col1) AND 2 IN (t.col1)

我的表tab1中有字段:

col1     | col2     | id
--------------------------
1,2,3    | 2,3,4,5  | a1
6,7,8,9  | 2,9,11   | a2
我想将这些字段传递给存储过程输入,如
中的col1 in('1,2')和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
的第一个参数不能是逗号分隔的列表)。此处引用:

您可以发布存储过程吗?并显示所需的结果。
中的
语句只能用于值集。这些集合可以通过选择查询(或子查询)获得,如
。。。其中col1位于(选择*FROM…
或作为输入查询编译的结果
。。。其中col1位于(1,2,3…)
。它不会像
那样工作。。。其中col1在col2中