使用php和mysql,
我有一个表“子域名”,其中包含我的应用程序的子域名,具体取决于类别。
子域名 - id,cat_id,subdomain
某些类别具有子域名,而其他类别则没有。 对于那些没有子域名的人,我希望子域名为“www”。
现在在我的子域表中有一些值,例如:
subdomains : id, cat_id, subdomain
1, 6, "sales"
2, 7, "infos"
现在,我有一个cat_id数组,例如$ aCatIds = array(1,5,6,8);
在mysql查询结束时,我想要这样的东西:
array(
0 => (cat_id="1", subdomain="www") ,
1 => (cat_id="5", subdomain="www") ,
2 => (cat_id="6", subdomain="sales") ,
3 => (cat_id="8", subdomain="www") ,
)
只有一个mysql查询可以吗?
我使用php并尝试过这样的事情:
$stmt = "select cat_id, ifnull('www', subdomain) as subdomain
from subdomains
where cat_id in (". implode(',', $aCatIds) .")";
但是我只获取了设置的值(上例中为6),我不知道如何告诉mysql获取预期的数组。
答案 0 :(得分:0)
要使其工作,您必须(左)加入现有数据(cat_id确实存在的地方)。例如,如果我假设cat
表存在cat_id
个引用,那么就是这样:
SELECT c.id as cat_id,IFNULL(s.subdomain,'www')
FROM cat c
LEFT JOIN subdomains s
ON s.cat_id = c.id
WHERE c.id IN (1,2,3,4);