从另一个表中选择多个列,其中字段包含数组

时间:2016-10-22 00:45:36

标签: php mysql arrays

我有两张桌子

phi_ads {id,files}
phi_files {id,file}

问题是phi_ads包含数组,例如(20,21)此数字是phi_files的ID

所以我需要选择所有这些文件

我试试这个

select a.name,d.*,f.* from phi_ads d 
inner join phi_areas a on a.id = d.area 
inner join phi_files f on f.id = d.files 
where d.id=42

注意phi_ads.files = "102,103"所以只返回第一个文件,但我需要返回phi_files

中的所有文件

我是新人。

1 个答案:

答案 0 :(得分:0)

使用IN运算符,IN运算符允许您在WHERE子句中指定多个值。

  phi_ads.files In (102,103)

<强> Reference

<强>更新

   select a.name,d.*,f.* from phi_ads d 
   inner join phi_areas a on a.id = d.area 
   inner join phi_files f on FIND_IN_SET( f.id , d.files )
   where d.id=42

更新2

   select a.name,d.*,GROUP_CONCAT(f.name) as name from phi_ads d 
   inner join phi_areas a on a.id = d.area 
   inner join phi_files f on FIND_IN_SET( f.id , d.files )
   where d.id=42