数据库里有4个字段,分别是:名字,年龄,性格,IP地址。
名字不为空,其它有为空的情况。比如名字给出一个:张三
那是可以把名字是:张三 的记录都找出来张三  ,18,开朗,127.0.0.1
张三  ,22,开朗,13.0.1.2 我要的效果是所有有关联的数据都要查出来。
这就是
名字是张三的
年龄是18 or 22
性格是开朗
ip是127.0.0.0 or 13.0.1.2

解决方案 »

  1.   

    这样么?  如果要查询一个人 where 就可以了
     select col1 姓名,
           replace(wm_concat(col2),',',' or ') 年龄,
           replace(wm_concat(col3),',',' or ') 性格,
           replace(wm_concat(col4),',',' or ') ip地址
    from t1
    group by col1
        姓名     年龄        性格              ip地址
    ---------------------------------------------------------------------
    1   李四   21 or 21   成熟 or 成熟   127.0.0.3 or 13.0.1.3
    2   王五   25         大器           127.0.0.8
    3   张三   18 or 18   开朗 or 开朗   127.0.0.1 or 13.0.1.2
      

  2.   


    create table t1 (col1 varchar2(10),col2 number(5),col3 varchar2(10),col4 varchar2(10));insert into t1 values('张三',18,'开朗','127.0.0.1');
    insert into t1 values('李四',21,'成熟','127.0.0.3');
    insert into t1 values('王五',25,'大器','127.0.0.8');
    insert into t1 values('张三',18,'开朗','13.0.1.2');
    insert into t1 values('李四',21,'成熟','13.0.1.3');
      

  3.   

    按你的意思,直接select * from 表 where name='张三'不就行了。
    把你的想要的东西说清楚
      

  4.   

    我要的效果是
    select * from 表 where name='张三' or age=18 or age=22 or xingge='开朗' or ip='127.0.0.1' or ip='13.0.1.2'就是我输入张三查询出张三所有相关的信息,比如
    第二条数据
    张三 ,22,开朗,13.0.1.2
    要关联出
    李四,22,成熟,12.30.36.2
    王五,22,null,null
    李柳,null,null,13.0.1.2
      

  5.   

    or age=18 or age=22 or xingge='开朗' or ip='127.0.0.1' or ip='13.0.1.2'这些是数据库的内容,不是固定的。要的效果如图:
      

  6.   

    select * from table where age in(select distinct age from table where name='张三')
    union all select * from table where xingge in(select distinct xingge from table where name='张三')
    union all select * from table where ip in(select distinct ip from table where name='张三')
      

  7.   

    楼主的意思 并不一定就一条记录吧,如果要是传值来拼接的话用oracle的函数,很多的话临时表加储存过程应该可以解决
      

  8.   

    有点像递归循环的样子吧!
    A,2,T,U
    A,5,6,O
    C,P,U,D
    V,H,L,K
    F,10,6,G
    S,10,Y,12
    像上面六条数据,正常情况,我们通过第一个字段等于A查询,这个很简单
    select * from table where name='张三'
    那就得到的
    A,2,T,U
    A,5,6,O
    但是因为A,5,6,O第三个字段是6,那就要得到
    A,2,T,U
    A,5,6,O
    F,10,6,G
    又因为F,10,6,G第二个字段10,就要得到
    A,2,T,U
    A,5,6,O
    F,10,6,G
    S,10,Y,12
    那就是通过第一个字段等于A就要找出这四条相关联的数据。