首页 > 解决方案 > 如何将任意数量的字符串传递给查询?

问题描述

我来自 PostgreSQL 背景,在那里我可以写以下内容:

SELECT * FROM my_table WHERE my_table.text_column = ANY(:input::text[])

在这个查询中,我传递了一个字符串值数组。这允许我传递任意数量的输入参数,而无需事先知道大小。

您将如何在 MySQL 中执行此操作?如果这很重要,我的目标是 MySQL 8。

标签: mysqlsqlmysql-8.0

解决方案


一种方法是使用 IN 关键字。

SELECT * FROM my_table WHERE my_table.text_column IN('item1','item2','item3');

http://www.mysqltutorial.org/sql-in.aspx

编辑:不更改查询:如果为项目列表创建临时表,则可以使用:

SELECT * FROM my_table WHERE my_table.text_column IN  
(SELECT item from temptable);

推荐阅读