求一条查询语句

sinp 2005-05-26 06:50:59
请问各位
如何把数据库中的几个字段合并起来对输入的字符串进行匹配?
如:数据库中有name,middle,lastname 输入的字符可能是这三个字段中的任何一个,请问这个查询语句应该如何写?

在线等待,多谢各位!!
...全文
173 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
indexroot 2005-05-27
  • 打赏
  • 举报
回复
不好意思,应该加定界符
$text=preg_replace("/\s+/","",$text);
sinp 2005-05-26
  • 打赏
  • 举报
回复
已经做出来了,多谢各位的鼎立帮助!!
indexroot 2005-05-26
  • 打赏
  • 举报
回复
如果用正则表达式:
$text=preg_replace("\s","",$text);
去全部空格
piner 2005-05-26
  • 打赏
  • 举报
回复
select replace(fields_name, ' ', '') from table
indexroot 2005-05-26
  • 打赏
  • 举报
回复
用str_replace()
$text=str_replace("\t","",$text);
$text=str_replace(" ","",$text);
$text=str_replace("\n","",$text);
去掉全部空格
indexroot 2005-05-26
  • 打赏
  • 举报
回复
ltrim和rtrim去除字符串头部和尾部的空格
sinp 2005-05-26
  • 打赏
  • 举报
回复
ltrim,chop怎么都没作用啊。
就两头输入的空格可以去除,中间的还是不成啊
indexroot 2005-05-26
  • 打赏
  • 举报
回复
如果是英文名按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."%'";
piner 2005-05-26
  • 打赏
  • 举报
回复
查一下mysql的函数,很多函数是平时没有用到,到用时就要去查
piner 2005-05-26
  • 打赏
  • 举报
回复
最后一个问题,因为录入有可能有人录入了空格,我记得取出字串中的空格应该是ltrim()吧?
可是怎么没作用啊?

rtrim, trim
sinp 2005-05-26
  • 打赏
  • 举报
回复
多谢多谢!
最后一个问题,因为录入有可能有人录入了空格,我记得取出字串中的空格应该是ltrim()吧?
可是怎么没作用啊?

另外,如果CONCAT('name','middle','lastname')这样的话,什么都选不出来,如果去掉 ' 这个符号,就可以了
piner 2005-05-26
  • 打赏
  • 举报
回复
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%'
indexroot 2005-05-26
  • 打赏
  • 举报
回复
CONCAT()联接字符串
注意
CONCAT( `name` , `middle`, `lastname` )中的“`”不能替换成" ' 也不能没有

用 ` 括起来的表示是数据库表名、字段名
用 " '括起来的表示字符串
indexroot 2005-05-26
  • 打赏
  • 举报
回复
$str=传递来的字符串(名字);
$sql="SELECT * FROM `表名` WHERE CONCAT( `name` , `middle`, `lastname` ) LIKE '%".$str."%'";
sinp 2005-05-26
  • 打赏
  • 举报
回复
多谢 leo963258(读书之人)帮忙!!

让我干活的人真是变态 T_T
leo963258 2005-05-26
  • 打赏
  • 举报
回复
我暂时都没看到。
如果有的话。怎么把数据写出来,那还是个大问题
sinp 2005-05-26
  • 打赏
  • 举报
回复
多谢多谢!!
再多问一句,sql里面,难道就没有让三个字段合并后,然后对收入字段进行匹配的语句或者函数?
T_T
5555555555555555555555555
leo963258 2005-05-26
  • 打赏
  • 举报
回复
你的那种想法,只能找到你要找的字符串。
sql语句。更本就实现不了。
记录也循环不出来。。
看不明白。我也没办法。。
我真的尽最大的努力了。大哥。
sinp 2005-05-26
  • 打赏
  • 举报
回复
能麻烦您帮忙写一个比较完整的么?
我太笨,您写的看不明白........... T_T
leo963258 2005-05-26
  • 打赏
  • 举报
回复
你先把3个字段用集写出来。比如
str=rs(0)&rs(1)&rs(2)
str1=instr(str,"你要找的字符串")
就这样。
加载更多回复(10)

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧