SQL中的LIKE能范围查找吗?
就像我想查找所有名字以H开头一直到以Q开头的记录,
也就是说这些名字有的是以H开头的,有的是以J开头的,有的是以K开头的,一直到Q开头的,怎么找出来呢?
而且规定只能用LIKE字符,我看网上有LIKE '%[H-Q]%'的写法,可是我查了没有结果。
我是这样写的:
select name from person t where t.name like '%[H-Q]%';
执行了没有返回结果。
请问实现这样的操作要怎么写?
[b]问题补充:[/b]
我用的是ORACLE数据库,另外限制只能用LIKE字符。
[b]问题补充:[/b]
wxjiaaa 兄写的是对的,可是用到了10G里的一个新函数REGEXP_LIKE (),虽然结果出来了,可是我在程序里还是没有办法使用啊,因为我的程序里限定是只能使用LIKE的~~
还请再看看只使用LIKE能实现吗?
在oracle10G里是可以匹配正则的
按你的例子我写了个:
select name from person t where REGEXP_LIKE(t.name,'[h-q]','i')
你可以去看看能用不
不同的数据库服务器所支持的 SQL 语法是不一样的,你用的是什么服务器?你在网上看的又是什么服务器的?[H-Q] 这种语法其实已经是正则表达式了,在 MySQL 里可以用这样写:
[code="sql"]SELECT name FROM person t WHERE t.name REGEXP '^[H-Q]'[/code]
[quote]select name from person t where t.name like '%[H-Q]%'; [/quote]
是找H_Q开头的,应该是这样写的吧!你那里是下划线吗?还有前面写个'%'是做什么啊?
[quote]select name from person t where t.name like '[H_Q]%'
[/quote]
[quote]select name from person t where t.name like '[H_Q]%' [/quote]
写错了是
[quote]select name from person t where t.name like '[H-Q]%[/quote]