在MySQL中,如何在WHERE IN子句中使用用户定义的变量? [英] In MySQL how do I use a user defined variable in a WHERE IN clause?

查看:1091
本文介绍了在MySQL中,如何在WHERE IN子句中使用用户定义的变量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不明白为什么这行不通.有人可以解释我需要做什么吗?

I don't understand why this does not work. Can someone explain what I need to do?

SET @my_list = '2,6,8,10,12,13,14,18,19,21';

DELETE FROM my_table WHERE my_table.table_id IN (@my_list);

推荐答案

它将@my_list解释为单个ID,因此您要求它从my_table中删除,其中ID为字符串"2,6,8,10" ,12,13,14,18,19,21"

It's interpreting @my_list as a single id and so you're asking it to delete from my_table where your id is the string "2,6,8,10,12,13,14,18,19,21"

您可以尝试

SET @my_list = '2,6,8,10,12,13,14,18,19,21';
SET @exec = CONCAT('DELETE FROM my_table WHERE my_table.table_id IN (', @my_list ,')');
EXECUTE (@exec);

这篇关于在MySQL中,如何在WHERE IN子句中使用用户定义的变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆