SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'
若使用 SELECT * FROM [user] WHERE u_name LIKE '%三%猫%'
虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。
2,_: 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:
比如
SELECT * FROM [user] WHERE u_name LIKE '_三_'
只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的;
再比如
SELECT * FROM [user] WHERE u_name LIKE '三__';
只找出“三脚猫”这样name为三个字且第一个字是“三”的;
3. regexp_like 正则表达式函数查询
--查询FieldName中以1开头60结束的记录并且长度是7位
select * from fzq where FieldName like '1____60';
select * from fzq where regexp_like(FieldName,'1....60');
--查询FieldName中以1开头60结束的记录并且长度是7位并且全部是数字的记录。
--使用like就不是很好实现了。
select * from fzq where regexp_like(FieldName,'1[0-9]{4}60');
-- 也可以这样实现,使用字符集。
select * from fzq where regexp_like(FieldName,'1[[:digit:]]{4}60');
-- 查询FieldName中不是纯数字的记录
select * from fzq where not regexp_like(FieldName,'^[[:digit:]]+$');
-- 查询FieldName中不包含任何数字的记录。
select * from fzq where regexp_like(FieldName,'^[^[:digit:]]+$');
--查询以12或者1b开头的记录.不区分大小写。
select * from fzq where regexp_like(FieldName,'^1[2b]','i');
--查询以12或者1b开头的记录.区分大小写。
select * from fzq where regexp_like(FieldName,'^1[2B]');
-- 查询数据中包含空白的记录。
select * from fzq where regexp_like(FieldName,'[[:space:]]');
--查询所有包含小写字母或者数字的记录。
select * from fzq where regexp_like(FieldName,'^([a-z]+|[0-9]+)$');
--查询任何包含标点符号的记录。
select * from fzq where regexp_like(FieldName,'[[:punct:]]');
<if test="AGTNAM !=null and AGTNAM !=''">
<![CDATA[and AGTNAM like concat(concat('%',#{AGTNAM}),'%'))]]>
<select id="selectUserByName" parameterType="string" resultType="user">
select * from user where username like '%${value}%'
</select>
insert into mytest_t values(1,'张三',to_date('2011-09-09','yyyy-MM-dd'))
insert into mytest_t values(1,'张三',to_date('20110909','yyyyMMdd'))
2,数据库里面存的时varchar2 直接插入
insert into mytest_t values(1,'zhangdan','2011-09-09')
3,查询 ,数据库存的是varchar2
日期输出的格式是由 to_char 决定的
select to_char(to_date(birthday01,'yyyy-mm-dd'),'yyyy-MM-dd') from MYTEST_T 输出是:yyyy-MM-dd
select to_char(to_date(birthday01,'yyyy-mm-dd'),'yyyyMMdd') from MYTEST_T 输出是:yyyyMMdd
4,查询 ,数据库存的是date
select to_char(birthday,'yyyy-MM-dd') from MYTEST_T 格式 是由to_char 决定的
select to_char(birthday,'yyyyMMdd') from MYTEST_T
select to_char(sysdate,'yyyy-MM-dd hh24:mi:ss') as nowTime from dual; //日期转化为字符串
select to_char(sysdate,'yyyy') as myyear from mytest; //获取时间的年
select to_char(sysdate,'mm') as myMonth from mytest; //获取时间的月
select to_char(sysdate,'dd') as myDay from mytest; //获取时间的日
select to_char(sysdate,'hh24') as myHour from mytest; //获取时间的时
select to_char(sysdate,'mi') as myMinute from mytest; //获取时间的分
select to_char(sysdate,'ss') as mySecond from mytest; //获取时间的秒