如何用sql语句模糊查询姓名中有三个词的人名,比如“king george V”,where name like'...'
This is a exercise: Ships(name,class,launched) Find the names of all ships whose name consists of three or more words(e.g.,King George V). 呵呵,各位和我一样想复杂了,直接 name like '% % %'之间用空格就可以了,我用mysql测试的
谢谢大家了
最新回答
苍山有井名为空
2024-08-17 03:25:44
假设有表T,A为人名字段,人名中的空格可能不止一个,可能有多个,直接用空格数,或是长度数来计算,可能潜在一些问题,所以应该先作简单处理一下,把所有不同长度(这里假设最长为10)的空格,转成一个空格,再计算长度. select * from ( select 'A'= case when charindex(' ',A,1)>0 then replace(A,' ',' ') when charindex(' ',A,1)>0 then replace(A,' ',' ') when charindex(' ',A,1)>0 then replace(A,' ',' ') when charindex(' ',A,1)>0 then replace(A,' ',' ') when charindex(' ',A,1)>0 then replace(A,' ',' ') when charindex(' ',A,1)>0 then replace(A,' ',' ') when charindex(' ',A,1)>0 then replace(A,' ',' ') when charindex(' ',A,1)>0 then replace(A,' ',' ') when charindex(' ',A,1)>0 then replace(A,' ',' ') when charindex(' ',A,1)>0 then replace(A,' ',' ') end from T ) M where len(A)-len(replace(A,' ',''))>=2
希望以上对你有所帮助!
紫色的梦幻
2024-08-17 03:18:32
如果都是空格来区分就好办,空格数两,如果有两个空格就代表姓名中三个词 where length(name) - length(replace('name,' ','')) = 2