在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/數(shù)據(jù)庫(kù)/ mysql字符串拼接無(wú)法全部讀???

mysql字符串拼接無(wú)法全部讀???

要讀取某欄目(catalog)及其子欄目(可能有也可能沒(méi)有)下的所有文章(article),article表有字段catalog_id,用拼接字符串的形式,發(fā)現(xiàn)只會(huì)讀取到catalog_id為10的所有文章

select * from article  where article.catalog_id IN (
    select CONCAT_WS(',',10,GROUP_CONCAT(id))  from catalog where catalog.top_id=10
);

請(qǐng)問(wèn)我哪里寫錯(cuò)了?

回答
編輯回答
乖乖噠

如果catalog 里有id=1,2,3,4的, GROUP_CONCAT(id)返回 '1,2,3,4',
CONCAT_WS(',',10,GROUP_CONCAT(id))將返回 '10,1,2,3,4',注意這里都是帶引號(hào)的,意味著這是字符串

相當(dāng)于是

select * from article  where article.catalog_id IN (
    '10,1,2,3,4'
);

顯示這里引號(hào)起了副作用

改成這個(gè)試試?

select * from article  where article.catalog_id IN (
select 10 union
select id from catalog where catalog.top_id=10
);

因?yàn)椴皇呛芮宄愕谋斫Y(jié)構(gòu)和數(shù)據(jù), 也許這并不是你想要的 ;)

2018年5月14日 21:48