plsql查询中'%%'是模糊查询吗?为什么查不出来呢?
在进行数据库查询时,有完整查询和模糊查询之分:
完整查询用等号来匹配条件数据:SELECT 字段 FROM 表 WHERE 某字段 = 条件 ;
模糊查询用like关键字来匹配查询条件:SELECT 字段 FROM 表 WHERE 某字段 Like 条件 ;
关于模糊查询中的条件,SQL提供了四种匹配模式:
% :表示任意0个或多个字符。
_ : 表示任意单个字符。
[ ] :表示括号内所列字符中的一个(类似正则表达式)。
[^ ] :表示不在括号所列之内的单个字符。
注:当采用通配符时,用等号来匹配时,将查询不到数据。
相关实例:
SELECT * FROM TABLE_NAME WHERE FIELD_NAME LIKE '%1234%' ; 查询某字段含1234的数据
SELECT * FROM TABLE_NAME WHERE FIELD_NAME LIKE '%1234' ;查询某字段以1234结尾的数据
SELECT * FROM TABLE_NAME WHERE FIELD_NAME LIKE '1234%' ;查询某字段以1234开头的数据
SELECT * FROM TABLE_NAME WHERE FIELD_NAME LIKE '_1234_' ; 查询数据长度为6位,中间四位是1234的数据
SELECT * FROM TABLE_NAME WHERE FIELD_NAME LIKE '[abc]1234' ; 查询a1234, b1234 , c1234 这三种数据
SELECT * FROM TABLE_NAME WHERE FIELD_NAME LIKE '[^abc]1234' ;查询不是a1234, b1234 , c1234 这三种数据的数据
比如id like '%ABC%'是查出id中含有ABC字符的数据
like '%ABC'是最后三位是ABC的, 'ABC%'是前三位ABC的
2019-02-14
id name job
1 jack_as cleak
2 roy_jj hawa
3 mini_hi comm
如果要查找name列的roy_jj
select * from 表名 where name like '%y%' %是通配符就是匹配前后所有字符;