SQL: 在列为数组的查询中获取最大值

SQL: Get maximum value in query where column is an array

我需要使用 SQL 从以下 table 中获取最大 id 值,其中名称为 3 包含在该列的数组中:

id name
1   [2,3]
2   [3,5,6]
3   [7,8]

这就是我正在尝试的(有很多组合):

SELECT `MAX(id)`
FROM `table`
WHERE `name`
IN ( 3 ) 

我应该得到结果 2 因为 3 包含在 id 1 和 2 中。

您应该使用 LIKE 而不是 IN,因为 IN 就像将整个字符串与精确匹配进行比较。 LIKE 是将字符串与字符串的一部分进行比较(每个 % 表示任何东西都可以替换它)

SELECT `MAX(id)`
FROM `table`
WHERE `name` LIKE '%3%'

此外,我不确定 mysql 语法,但我认为应该是

MAX(`ID`) and not `MAX(ID)`