如何用sql语句模糊查询姓名中有三个词的人名,比如“king george V”,where name like'...'

Thisisaexercise:Ships(name,class,launched)Findthenamesofallshipswhosenameconsistsofth... 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).
select * from Ships where name like '% % %'
三个词,也就是中间有两个空格... 所以在两个空格旁边分别加%
在SQL Server里实验了一下,可以成功...

假如name的值是george King中间好几个空格,那它也会被选择出来,而这个名字不符合要求,所以这种方法不严密
展开
 我来答
nj_xiaohang
2009-05-20 · TA获得超过479个赞
知道小有建树答主
回答量:257
采纳率:0%
帮助的人:146万
展开全部
oracle 正则表达式

SQL> select sysdate
2 from dual
3 where regexp_like('king george V',
4 '^[a-zA-z]+[ ]+[a-zA-z]+[ ]+[a-zA-z]+$')
5 ;

SYSDATE
-----------
2009-5-20 上

----------------------------------------------
SQL> select sysdate
2 from dual
3 where regexp_like('king george V',
4 '^[a-zA-z]+[ ]+[a-zA-z]+[ ]+[a-zA-z]+$');

SYSDATE
-----------
2009-5-20 上
------------------------------
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
晓蛹
2009-05-19 · TA获得超过110个赞
知道答主
回答量:38
采纳率:0%
帮助的人:21.3万
展开全部
select * from Ships where name like '% % %'
三个词,也就是中间有两个空格... 所以在两个空格旁边分别加%
在SQL Server里实验了一下,可以成功...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
phantuomas
2009-05-19 · TA获得超过237个赞
知道小有建树答主
回答量:601
采纳率:0%
帮助的人:209万
展开全部
select * from 表名 where name like "king" or name like "george" or name like "V"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aab2009aab
2009-05-20 · TA获得超过537个赞
知道小有建树答主
回答量:1047
采纳率:0%
帮助的人:640万
展开全部
select *
from
Ships
where
name like '%[^ ][ ]%[^ ][ ]%'
and
name not like '%[^ ][ ]%[^ ][ ]%[^ ][ ]%'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式