11GR2递归With子查询
11GR2增加了递归With子查询详见 剑破冰山 429页树形遍历有了新方法.原来使用sys_connect_by_path函数select employee_id, first_name, manager_id, &...
数据库层防止重复提交
需求: 用户反复点击按钮,可能造成重复提交。 可以限制用户,30s内只能提交1次. 这种问题还可以衍生为,每个用户每天只能提交三次,等等.MySQLcreate table t (username varchar(10) ,ts timestamp default current_timestamp);大柴30s内只能提交一次.insert int...
考勤统计问题
老东家就考勤管的严.上午8:30上班中午11:30签退,午休下午13:30签到,开始工作晚上18点下班.中午签退的时间范围是 11:30至12点下午签到的时间范围是 13:00至13:30HR怕11:30打完卡,下午3点再回来上班.央企都是各色人等。这也造成了人力管理的复杂.实验结构和数据:create table t (  ...
好友推荐问题
原题和数据create table friend ( userid varchar(10), touserid varchar(10) ); insert into friend value...
查看每个月举办的活动总数
现在写这种SQL纯属是小娱乐了.不过这种场景貌似挺多的.还是需要记录一下.实验结构和数据:create table act( id int primary key auto_increment, name varchar(10), &...
统计每天的三天内两次登录问题
实验结构和数据:CREATE TABLE `loginlog` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `pid` int(11) NOT NULL COMMENT '玩家ID', &nb...
Session重叠问题学习(一)
MySQL技术内幕 SQL2.4 Session重叠问题实验数据初始化:CREATE TABLE sessions ( id INT AUTO_INCREMENT NOT NULL, app VARCHAR(10) NOT NULL, ...
井字棋解法(补充)
还是井字棋http://blog.itpub.net/29254281/viewspace-1852817/今天和王工相互印证之下,发现原来的SQL还是有点问题.1.原来的SQL没有计算平局的情况2.我对于棋盘的理解有错误.下面这个棋盘(Board)MOVES=3175968,BOARD=XOXOXOX,WINNER=X其实应该是O-X-OOXXX居然把题目理解错了...3.还有一个bug.假如先...
井字棋解法
题目:井字棋两个玩家,一个打圈(O),一个打叉(X),轮流在3乘3的井字格上打自己的符号,最先以任意一行、一列或对角线连成一线则为胜。规定X先手。一个终局棋谱(MOVES)指的是从开始下子到一方获胜或者下完9个子出现平局,从头到尾的下子情况。一方获胜后,本局即终止。不得提前认输。格子从上...
MySQL树形遍历(二)
转载自:http://blog.csdn.net/dreamer0924/article/details/7580278英文原文:http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/预排序遍历树算法:modified preorder tree traversal algorithm 这个算法有如下几个数据结构1 lft 代表左 left2 rgt 代表右 right3 lvl...
MySQL树形遍历
借鉴Oracle Hr模式下的Employees表的结构和数据DROP TABLE IF EXISTS `employees`;CREATE TABLE `employees` ( `employee_id` int(11) NOT NULL, `FIRST_NAME` varchar(20) DEFAULT NULL, `LAST_NAME` varchar(25) DEFAULT NULL,...
Oracle translate函数和正则的几个应用
Oracle translate函数column str format a20;var str varchar2(200);exec :str:='abc';select translate(:str,'abc','123') str from dual;select translate(:str,'a','') str from dual;select translate(:str,'abc','1') str from dual;第一种情况,将映射的字符串修改第二种情况,函数第三个参数为空串,则...
Oracle内联视图更新遇到的问题.
遇到一个批量更新的需求. 我打算用内联视图更新+where in list的技巧处理
在组合中找到重复的数据
挺有意思的一个需求. 实验初始化一个表. CREATE TABLE `t` ( `id` int(11) NOT NULL AUTO_INCREMENT, `c1` int(11) DEFAULT NULL, &nb
实现秒杀的几个想法
第一种场景,秒杀单个商品,多人抢占一个商品资源,可以使用唯一索引进行控制.commodity是商品表,记录可以秒杀的商品commodity_log是秒杀记录表,记录那些用户...
MySQL In不能用内连接改写
原来面试的时候,是作为面试题背的..什么MySQL In 使用Exists方式,很慢...面试官问怎么办..回答用内连接改写..然后面试官露出满意笑容..一直以来都是这个剧本..直到昨天我才发现..这个剧本原来是错的.实验数据create table song(songid int);insert into song values(1),(2),(3);create table song_category_...
MySQL批量Insert应用ON DUPLICATE KEY UPDATE
也不清楚是设计的问题,还是实现的问题.总之最后到我这里,是一个很奇怪的需求.award_credit_room这个表,存放用户送礼的记录award_credit 是用户送礼产生的积分记录award_credit_room的数据经过汇总之后,需要批量Insert到award_credit表,如果没有记录,则Insert,存在记录则Update使用MySQL自定义变量,实现 insert..se...
报表添加合计
雇员表,字段分别为部门名称,小组名称,工资和奖金.create table employees( department varchar(20), team varchar(20), salary int, reward int);insert into employees values('技术部','a',10,2);insert into emp...
根据条件关联不同的表
这个用法倒不是很难,只是今天又遇到了.还是记录一下吧.用户表,create table user( id int, name varchar(10));insert into user values(1,'user1'),(2,'user2'),(3,'user3');团队表create table team( id int, name varchar(10)...
数字辅助表应用一则(分组生成行)
今天遇到了一个需求,有点意思给一个用户,随机生成1-3条评论.这些评论的内容有一个固定的范围.用户表create table user( userid int, name varchar(10));insert into user values(1,'user1'),(2,'user2'),(3,'user3');评论内容表create table comment_template( ...