从同一列获取两个或多个图像ID

时间:2013-03-25 07:15:37

标签: php mysql

我有一个MySQL表,其中包含一个或多个逗号分隔的数字。这些数字指的是另一个MySQL表中的ID,还包括图像的名称。

我想选择一个字段“images”包含“1,43”的行,并在第二个表格中显示ID为1和43的两个图像。

我必须在不同的字段中包含这两个数字吗?我宁愿把它们放在同一个中。

1 个答案:

答案 0 :(得分:5)

使用FIND_IN_SET。假设您有如下表格,

表1

+++++++++++
Images
+++++++++++
1,43

表2

+++++++++++++++++
ImageID  Image
+++++++++++++++++
1        ....
43       ....

示例查询:

SELECT  b.*
FROM    Table1 a
        INNER JOIN Table2 b
            ON FIND_IN_SET(b.ImageID, a.Images) > 0

如果你有时间修改表的结构。请做。如果您在大型数据库上执行此操作,上面的查询将执行缓慢。