mysql连表查询,出现的一点小模糊.请各位帮帮忙.

ffvsnn520 发布于 2013/12/12 09:19
阅读 171
收藏 1
select id from 表B where type =  1 的得出的结果为(1,2,3);

表A的fid为主键,表B的fid为varchar类型的(1,2,3);

同理:

    select keywords from 表A  where fid in (select id from 表B where type =  1);//只有一条记录,即为下面fid =1的那条.而忽略了2,3.

    select keywords from 表A  where fid in (1,2,3);//显示三条记录.

其实我想要的是类似于下面的数据.为什么第一个select查询后面的select明明查询的的确是1,2,3,但是得出的结果却只有1条.请各位 帮帮忙.

    select keywords from 表A  where fid in (1,2,3);如果把select直接换成(1,2,3)得到的就是我想要的.

加载中
0
自由PHP
自由PHP
试试使用 FIND_IN_SET这个函数
自由PHP
自由PHP
回复 @ffvsnn520 : 我给的函数可以使用吗
f
ffvsnn520
我其实很想知道为什么我上面的查询出想要的结果?您可以告知一下吗
0
IamBot
IamBot
wxg:select id from 表B where type = 1 得出的结果是
result:
1
2
3
还是 (1,2,3) - From IRC( http://t.cn/8kJZArX)
IamBot
IamBot
回复 @ffvsnn520 : select keywords from 表A where fid in (select id from 表B where type = 1); 等于 select keywords from 表A where fid in ((1,2,3)); 等于select keywords from 表A where fid in (1);
f
ffvsnn520
(1,2,3)
0
Timco
Timco
我看到了几个小的拼写错误,字符类型也没单引号。你是故意省的还是无意的错误?
返回顶部
顶部