开发提出一个需求,要查询注册用户名中含有大写字母的用户,
最简单的方式是
select * from user where user_name != lower(user_name);
可是这样会全表扫描,该表又是非常大;
可以改用正则表达式
select * from user e where REGEXP_LIKE(user_name,'[[:upper:]]')
只需在该字段上创建一个函数索引即可,由此我们还可以查找出用户名含有小写字母、数字的记录,或者包含非数字的记录
select * from user e where REGEXP_LIKE(user_name,'[^[:digit:]]')
最简单的方式是
select * from user where user_name != lower(user_name);
可是这样会全表扫描,该表又是非常大;
可以改用正则表达式
select * from user e where REGEXP_LIKE(user_name,'[[:upper:]]')
只需在该字段上创建一个函数索引即可,由此我们还可以查找出用户名含有小写字母、数字的记录,或者包含非数字的记录
select * from user e where REGEXP_LIKE(user_name,'[^[:digit:]]')
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15480802/viewspace-710231/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15480802/viewspace-710231/