str="输入的字符串"
sql="select * from table name like '%"&str&"%' or middle like '%"&str&"%' or lastname like '%"&str&"%'"

解决方案 »

  1.   

    感谢 leo963258(读书之人) 的帮助。
    但是,输入的字串很有可能是三者中的两个或者三个,您的方法只是解决了输入一个的问题。
      

  2.   

    sql="select * from table where "
    if "什么情况下" then
    sql=sql&"name like '%"&str&"%' "
    end if
    if "什么情况下" then
    sql=sql&"or middle like '%"&str&"%'"
    end if
      

  3.   

    leo963258(读书之人) 抱歉,不知道您是否可以写的详细写?
    就是用的那个例子?多谢了!
      

  4.   

    sql="select * from table where name like '%"&str&"%' or middle like '%"&str&"%' or lastname like '%"&str&"%'"这样已经解决了你的问题。
    如果字段中没有。就不显示记录。。
      

  5.   

    抱歉,可能我的表达有问题是这样的,数据库中的三个字段分别记录name, middlename,lastname
    那么我有可能输入其中的一个,也就是说,我输入的字串就是name,middlename,lastname三者之一。
    但是,还有其他两种情况是如果我输入name middlename 或者 name middlename lastname的话
    那您告诉我的那个方法就不行了。
      

  6.   

    比如说:
    name里面有12345 middlename里面有67890 lastname里面有abcde您告诉我的那个方法只适合于输入小于或者等于三个字段里的任何一个
    比如输入不大于 12345 或者67890或者abcde都没问题。但是,如果我输入123456ab的话,您这个方法就不适用了。
      

  7.   

    你先把3个字段用集写出来。比如
    str=rs(0)&rs(1)&rs(2)
    str1=instr(str,"你要找的字符串")
    就这样。
      

  8.   

    你的那种想法,只能找到你要找的字符串。
    sql语句。更本就实现不了。
    记录也循环不出来。。
    看不明白。我也没办法。。
    我真的尽最大的努力了。大哥。
      

  9.   

    多谢多谢!!
    再多问一句,sql里面,难道就没有让三个字段合并后,然后对收入字段进行匹配的语句或者函数?
    T_T
    5555555555555555555555555
      

  10.   

    多谢 leo963258(读书之人)帮忙!!让我干活的人真是变态 T_T
      

  11.   

    $str=传递来的字符串(名字);
    $sql="SELECT * FROM `表名` WHERE CONCAT( `name` , `middle`, `lastname` ) LIKE '%".$str."%'";
      

  12.   

    CONCAT()联接字符串
    注意
    CONCAT( `name` , `middle`, `lastname` )中的“`”不能替换成" ' 也不能没有用 ` 括起来的表示是数据库表名、字段名
    用 " '括起来的表示字符串
      

  13.   

    select * from table where concat(name,middle,lastname) like '%string%' or concat(name,lastname,middle) like '%string%' or concat(middle,name,lastname) like '%string%' or concat(middle,lastname,name) like '%string%' or concat(lastname,name,middle) like '%string%' or concat(lastname,middle,name) like '%string%'
      

  14.   

    多谢多谢!
    最后一个问题,因为录入有可能有人录入了空格,我记得取出字串中的空格应该是ltrim()吧?
    可是怎么没作用啊?另外,如果CONCAT('name','middle','lastname')这样的话,什么都选不出来,如果去掉 ' 这个符号,就可以了
      

  15.   

    最后一个问题,因为录入有可能有人录入了空格,我记得取出字串中的空格应该是ltrim()吧?
    可是怎么没作用啊?rtrim, trim
      

  16.   

    查一下mysql的函数,很多函数是平时没有用到,到用时就要去查
      

  17.   

    如果是英文名按first name(given name 名) middle name  last name(family name 姓)的顺序一个可能可以了
    用三个更好,
    但“`”不能略去的
    $str=传递来的字符串(名字);
    $sql="SELECT * from `表名` WHERE CONCAT(`name`,`middle`,`lastname`) like '%".$str."%' or concat(`name`,`lastname`,`middle`) like '%".$str."%' or concat(`middle`,`name`,`lastname`) like '%".$str."%' or concat(`middle`,`lastname`,`name`) like '%".$str."%' or concat(`lastname`,`name`,`middle`) like '%".$str."%' or concat(`lastname`,`middle`,`name`) like '%".$str."%'";
      

  18.   

    ltrim,chop怎么都没作用啊。
    就两头输入的空格可以去除,中间的还是不成啊
      

  19.   

    ltrim和rtrim去除字符串头部和尾部的空格
      

  20.   

    用str_replace()
    $text=str_replace("\t","",$text);
    $text=str_replace(" ","",$text);
    $text=str_replace("\n","",$text);
    去掉全部空格
      

  21.   

    select replace(fields_name, ' ', '') from table
      

  22.   

    如果用正则表达式:
    $text=preg_replace("\s","",$text);
    去全部空格
      

  23.   

    不好意思,应该加定界符
    $text=preg_replace("/\s+/","",$text);