如何在MySQL的IN子句中使用无引号、逗号分隔的ID列表

如何在MySQL的IN子句中使用无引号、逗号分隔的ID列表,mysql,sql,Mysql,Sql,情况是这样的:我正在对一个非规范化的表运行一个查询(在MySQL中)。不是我造的,别怪我。此表中的一列由逗号分隔的图像ID列表组成 这些图像ID对应于第二个表中的主键 我正在尝试在我的SQL中执行左连接,以便将图像附加到内容: LEFT JOIN image ON image.id IN (content.imageIDs) 这是因为content.imageID没有用引号括起来,而是1234567890、等等 如果我能将这些单独的ID用引号括起来,它应该可以工作。然而,我不知道怎么做 LEF

情况是这样的:我正在对一个非规范化的表运行一个查询(在MySQL中)。不是我造的,别怪我。此表中的一列由逗号分隔的图像ID列表组成

这些图像ID对应于第二个表中的
主键

我正在尝试在我的
SQL
中执行
左连接,以便将图像附加到内容:

LEFT JOIN image ON image.id IN (content.imageIDs)
这是因为content.imageID没有用引号括起来,而是1234567890、等等

如果我能将这些单独的ID用引号括起来,它应该可以工作。然而,我不知道怎么做

LEFT JOIN image ON image.id IN (REPLACE(content.imageIDs, ',', '\',\''))
这让我更接近,但现在我错过了开场白和结束语。我已经尝试使用
CONCAT()
添加这些,结果没有错误,但也没有结果。

在MySQL中执行此操作的“正常”方法是:

LEFT JOIN image ON find_in_set(image.id, content.imageIDs) > 0
在MySQL和许多其他数据库中工作的一般方法是:

LEFT JOIN image on content.imageIDs like concat('%,', image, ',%') 

(虽然字符串连接函数通常因数据库而异)。

即使您设法将它们括在引号中,它仍然不起作用,因为
REPLACE()
最终将返回一个字符串,而不是MySQL所关心的逗号分隔的值列表。。。。因此,join的
ON
子句将查找
image.id
“'12345'、'23456'、'09876'”
之类的字符串之间的匹配,而不是单个值。啊。这可能就是它不起作用的原因…使用
FIND\u IN\u SET()
函数。