用引号括起列表元素,用于WHERE IN

时间:2017-08-29 08:42:00

标签: mysql

假设我有一长串逗号分隔值:

one, two, three, .., hundred

我需要在WHERE IN这样使用它们:

SELECT * FROM tags WHERE IN (one, two, three, .., hundred)
那么我有什么方法可以告诉你#34; MySQL将每个值包装在引号中,或者至少使它将每个值视为字符串?如果不将值包装在引号中,则WHERE IN不起作用。

注意:当然有很多方法可以事先修改值列表,然后将其传递给查询,但我想知道是否有MySQL方式达到同样的效果。

2 个答案:

答案 0 :(得分:1)

使用此查询

Intent i = new Intent(getIntent());
public static final String token = i.getStringExtra("token");

答案 1 :(得分:1)

使用简单SQL查询无法实现,但是,您可以执行以下操作:

  • 创建一个用户定义的函数,用逗号分隔字符串(如this SO回答中所述)并将每个标记包装成双引号
  • CONCAT与括号一起使用,并将结果字符串存储到变量中(使用SET
  • IN查询中使用上述变量的值(例如WHERE value IN @val
  • 执行批处理或过程中的所有查询