mmk*_*mkd 7 mysql stored-procedures
我希望有人能够提供帮助.我已经创建了我的第一个存储过程(没有任何幻想)但是我遇到了一个问题.
我想给它一个字符串输入,如1,2,3,4,5然后它做一个简单的 SELECT * FROM [TABLE] WHERE EAN IN (VAR);
所以存储的proc看起来像这样:
-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$
CREATE PROCEDURE `moments`.`new_procedure`(IN var1 VARCHAR(255))
BEGIN
SELECT * FROM moments.PRODUCT WHERE EAN IN (var1);
END
Run Code Online (Sandbox Code Playgroud)
我正试图像这样执行它:
作品
call moments.new_procedure('5045318357397')
Run Code Online (Sandbox Code Playgroud)
不起作用
call moments.new_procedure('5045318357397,5045318357427');
Run Code Online (Sandbox Code Playgroud)
这会执行但不会带回任何结果.它是否将第二个语句分类为字符串,所以它这样做:
select * from moments.PRODUCT WHERE EAN IN ('5045318357397,5045318357427')
Run Code Online (Sandbox Code Playgroud)
而不是这个:
select * from moments.PRODUCT WHERE EAN IN ('5045318357397','5045318357427')
Run Code Online (Sandbox Code Playgroud)
如何在执行查询中格式化输入以使其以逗号分隔的字符串作为输入?
ano*_*ery 15
你可以使用:
SELECT * FROM moments.PRODUCT
WHERE FIND_IN_SET(EAN, var1)
Run Code Online (Sandbox Code Playgroud)
假设它实际上以逗号分隔,这应该工作.在这种情况下,任何其他分隔都不起作用.
| 归档时间: |
|
| 查看次数: |
7050 次 |
| 最近记录: |