好的,通常我知道如果你知道数组的值(本例中为1,2,3),你会这样做:

SELECT * WHERE id IN (1,2,3)

但我不知道数组的值,我只知道我要查找的值"存储"在数组中:

SELECT * WHERE 3 IN (ids) // Where 'ids' is an array of values 1,2,3

这不管用.还有别的方法吗?

推荐答案

使用FIND_IN_SET function:

SELECT t.*
  FROM YOUR_TABLE t
 WHERE FIND_IN_SET(3, t.ids) > 0

Mysql相关问答推荐

MySQL::JSON列的添加使SELECT查询非性能(当需要临时表时)

使用mysql查询获取不关注user1的user3

看不懂mysql自左连接查询

在 MySQL 中,如何对 LIKE 查询进行批量更新,删除字符?

根据 MySql 中同一表中的多列 Select 多列

global max_connections 和 spring.hikari.maximumPoolSize 有什么区别?

如何找到每个user_id每个产品的买家类型数量?

如何获取每日登录用户数?

使用来自另一个表 mysql 的值将新行插入到表中

最后一个字母 '%n' 的 mysql SELECT 字符串不起作用

如何根据 R 中的价格范围将数据从一列复制到新列?

从三个不同的表中生成两列,并使用分组变量计算这些列的比率

如何从具有第一行列值的表中 Select 客户的最新记录

MySQL - 单词边界的正则表达式,不包括下划线(连接标点符号)

带有 PARTITION BY 子句的 ROW_NUMBER() 停止在 MariaDB 上工作

插入二进制数据会导致Data too long for column...

查询获取日期之间的可数匹配条目并加入它们以读取用户状态

如何解决这个特定的 SQL 查询?我的解决方案还返回不想要的值

MySQL - 如何 Select 值在数组中的行?

使用 Java 通过 SSH 连接到远程 MySQL 数据库