解决方案 »

  1.   

    楼主你想得到什么样的效果?
    n1的字段中包含c1的全部字段?
    还是c1是列名,n1是字符串?
      

  2.   

    先假设有一种方法可以实现你的需求。
    那么可能会出现如下情况:
    假定c1字段长度为1,n1=‘ab’,sql语句变成查询 select * from table where c1 like ‘%ab%’;
    通过假设的方法,c1字段只可能查询出结果是a或b的值。
    如果n1=abcdefg....,那么c1字段将查询出所有n1所包含的的字母。
    如此下去,可以想象一下:select带条件查询出的结果很有可能就是整个表,并不能起到筛选的效果,这与设置条件是相违背的。
    所以这种查询本身就是一种没有意义的。
    where条件查询的根本目的就是缩小查询结果范围,如果起不到这种效果的条件查询将无任何意义。
    因此,你说的这种情况本身就存在一点问题,n1的长度只能是小于等于c1字段的长度。个人理解,仅供参考!
      

  3.   

    c1是一个列名   n1为一个字符串
    那就是说
    你的需求是:
    c1列中的数据,包含n1字符串中的一部分就输出?
    还是 c1中数据的长度小于n1字符串 就输出?
      

  4.   


    如果n1的长度只能是大于c1字段的长度,是可以查到的select * from table where n1 like '%'||c1||'%'但是如果不知道n1的长度,就不知道怎么查了!
      

  5.   

    c1是一个列名   n1为一个字符串
    那就是说
    你的需求是:
    c1列中的数据,包含n1字符串中的一部分就输出?
    还是 c1中数据的长度小于n1字符串 就输出?
    SELECT
    *
    from 
    test
    where 
    LOCATE(c1,n1)
      

  6.   


    c1是一个列名   n1为一个字符串
    那就是说
    你的需求是:
    c1列中的数据,包含n1字符串中的一部分就输出?
    还是 c1中数据的长度小于n1字符串 就输出?
    SELECT
    *
    from 
    test
    where 
    LOCATE(c1,n1)
    n1记得加单引号
      

  7.   

    c1是一个列名   n1为一个字符串
    那就是说
    你的需求是:
    c1列中的数据,包含n1字符串中的一部分就输出?
    还是 c1中数据的长度小于n1字符串 就输出?
    SELECT
    *
    from 
    test
    where 
    LOCATE(c1,n1)
    n1记得加单引号
    只要包含就输出!
    但是,像这种情况也要输出
    例如:n1   =  “北京中关村股份有限公司”   
    但是也要输出“北京中关村”
      

  8.   

    c1是一个列名   n1为一个字符串
    那就是说
    你的需求是:
    c1列中的数据,包含n1字符串中的一部分就输出?
    还是 c1中数据的长度小于n1字符串 就输出?
    SELECT
    *
    from 
    test
    where 
    LOCATE(c1,n1)
    n1记得加单引号
    只要包含就输出!
    但是,像这种情况也要输出
    例如:n1   =  “北京中关村股份有限公司”   
    但是也要输出“北京中关村”你这个结果其实不是sql语句直接查询的结果,可能你想要的是输入“北京中关村股份有限公司”,把所有相关的信息都显示出来,类似关键字搜索并且带有一点自动联想的意思。
    这块就不是sql能做的了,需要你在进行数据库查询之后找到关键字,利用这个关键字去查询数据库。
    就像:输入”中华人民共和国“,会查出”中国“一样。
      

  9.   


    c1是一个列名   n1为一个字符串
    那就是说
    你的需求是:
    c1列中的数据,包含n1字符串中的一部分就输出?
    还是 c1中数据的长度小于n1字符串 就输出?
    SELECT
    *
    from 
    test
    where 
    LOCATE(c1,n1)
    n1记得加单引号
    只要包含就输出!
    但是,像这种情况也要输出
    例如:n1   =  “北京中关村股份有限公司”   
    但是也要输出“北京中关村”
    你这个需求上面的也能实现啊。
    除非你还有其他要求,如 n1   =  “北京中关村股份有限公司” ,要输出 “北京公司”。那就没办法用sql来实现
      

  10.   

    c1是一个列名   n1为一个字符串
    那就是说
    你的需求是:
    c1列中的数据,包含n1字符串中的一部分就输出?
    还是 c1中数据的长度小于n1字符串 就输出?
    SELECT
    *
    from 
    test
    where 
    LOCATE(c1,n1)
    n1记得加单引号
    只要包含就输出!
    但是,像这种情况也要输出
    例如:n1   =  “北京中关村股份有限公司”   
    但是也要输出“北京中关村”你这个结果其实不是sql语句直接查询的结果,可能你想要的是输入“北京中关村股份有限公司”,把所有相关的信息都显示出来,类似关键字搜索并且带有一点自动联想的意思。
    这块就不是sql能做的了,需要你在进行数据库查询之后找到关键字,利用这个关键字去查询数据库。
    就像:输入”中华人民共和国“,会查出”中国“一样。
    没有看懂!怎么去找关键字?
      

  11.   

    用字符串函数instr
    select * from table where  instr(n1,c1)>0;
    楼主是想要这样不?
      

  12.   


    c1是一个列名   n1为一个字符串
    那就是说
    你的需求是:
    c1列中的数据,包含n1字符串中的一部分就输出?
    还是 c1中数据的长度小于n1字符串 就输出?
    SELECT
    *
    from 
    test
    where 
    LOCATE(c1,n1)
    n1记得加单引号
    只要包含就输出!
    但是,像这种情况也要输出
    例如:n1   =  “北京中关村股份有限公司”   
    但是也要输出“北京中关村”
    你这个需求上面的也能实现啊。
    除非你还有其他要求,如 n1   =  “北京中关村股份有限公司” ,要输出 “北京公司”。那就没办法用sql来实现这个还真没这样查询过。请问sql查询语句是怎样写?