我确定答案是肯定的。但是我怎么写这个不同呢?
$query = $this->db->get_where('online_ads', array('id' => 20))->row()->size;
$ad_array = json_decode($query, TRUE);
$result = '';
foreach ($ad_array as $a):
$query = $this->db->get_where('ad_sizes', array('id' => $a))->row();
$result .= $query->name.' ';
endforeach;
echo $result;
答案 0 :(得分:4)
撰写查询以加入online_ads和ad_sizes。是的,您将拥有来自online_ads表的冗余数据,但如果ad_sizes具有大的结果集,则净执行时间将更快。
答案 1 :(得分:1)
在这种情况下,您可以更好地构建以逗号分隔的ID字符串,然后使用IN
运行一个查询。
$ids = implode(',', $ad_array);
执行以下查询:
$sql = "SELECT * FROM table WHERE id IN ($ids)";
另一个选择是使用JOIN
个查询。在你的情况下,我会做一个JOIN
。