SQL 语句 将一个表中用特殊字符分割的字段转换成多行数据 30
指定一条数据在查询的时候分割nameid的值并且作为查询另一张表里name的条件,比如:qq=123这条数据的nameid分割为1,2,查出另一张表里的name为2,3,...
指定一条数据 在查询的时候分割nameid的值并且作为查询另一张表里name的条件,比如:qq=123这条数据的nameid分割为1,2,查出另一张表里的name为2,3,显示结果为23 数据库是postgrepsql
展开
2个回答
展开全部
不知道你是什么数据库,如果是Mysql,可以这样(假定含有qq字段的表为t1,另一张表为t2):
select `name` from `t2` where find_in_set(`id`, (select `nameid` from `t1` where `qq`=123));
如果是SQLServer,则这样:
select [name] from [t2] where charindex(','+[id]+',',','+(select [nameid] from [t1] where [qq]=123)+',')>0;
如果是ACCESS,则这样:
select [name] from [t2] where instr(',' & (select [nameid] from [t1] where [qq]=123) & ',',',' & [id] & ',')>0;
select `name` from `t2` where find_in_set(`id`, (select `nameid` from `t1` where `qq`=123));
如果是SQLServer,则这样:
select [name] from [t2] where charindex(','+[id]+',',','+(select [nameid] from [t1] where [qq]=123)+',')>0;
如果是ACCESS,则这样:
select [name] from [t2] where instr(',' & (select [nameid] from [t1] where [qq]=123) & ',',',' & [id] & ',')>0;
追问
数据库是postgre
追答
这个我还真没用过,没法帮你了,88
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询