求一个mysql语句,求高手解答 10C

我用的是mysql数据库,有两张表:
CREATE TABLE users (
u_id INT,
u_name VARCHAR(10)
);
CREATE TABLE login_record(
id INT,
u_id INT,
logintime, -- 登陆时间
CONSTRAINT fk_lr_u_id FOREIGN KEY(u_id) REFERENCES users(u_id)
);

我的要求是,查出至今连续登陆N天的用户或者指定时间开始连续登陆N天的用户,注意是连续登陆的。求高手解答。

9个回答

qq_31472377
qq_31472377 这个帖子用的是oracle的数据库,和mysql很多函数都不一样,无解
接近 2 年之前 回复

select a.username
from logtable a,logtable b,logtable c
where a.time=b.time + 1 and b.time=c.time+1
and a.action='loging' and b.action='loging' and c.action='loging'
and a.usernaem=b.username and a.username=c.username

qq_31472377
qq_31472377 大哥,抄袭也不用这样吧。。。。。
接近 2 年之前 回复

总得有个登出时间吧,你这表中光一个登录时间,怎么算连续登录天数啊

一个笨方法,可以试试
SELECT a.u_id FROM login_record a
JOIN login_record b ON a.u_id=b.u_id AND DATEDIFF(a.logintime,b.logintime) = 1
JOIN login_record c ON a.u_id=c.u_id AND b.u_id=c.u_id AND DATEDIFF(a.logintime,c.logintime) = 2 AND DATEDIFF(b.logintime,c.logintime) = 1
WHERE
a.logintime >= '2017-10-11 00:00:00'
GROUP BY a.u_id

qq_31472377
qq_31472377 回复奋斗_小蚂蚁: 查出的记录不对= =
接近 2 年之前 回复
qq_40611359
奋斗_小蚂蚁 2017-10-01 和 2 是可变的 ,连续10天 就写9就可以了,能看懂吧?你试试
接近 2 年之前 回复
qq_40611359
奋斗_小蚂蚁 回复qq_31472377: SELECT u_id, days - rownum, COUNT(*) FROM ( SELECT DISTINCT u_id, DATE_FORMAT(logintime, '%j') days, tt.logintime, tt.id, ( SELECT IFNULL(COUNT(*), 0) FROM login_record t WHERE t.logintime < tt.logintime AND t.u_id = tt.u_id GROUP BY t.u_id ) AS rownum FROM login_record tt WHERE tt.logintime > '2017-10-01' ) a GROUP BY u_id, days - rownum HAVING count(*) > 2;
接近 2 年之前 回复
qq_31472377
qq_31472377 回复奋斗_小蚂蚁: 好吧,我需求写的不对,我改为n天,有没有更好的建议?
接近 2 年之前 回复
qq_40611359
奋斗_小蚂蚁 回复qq_31472377: 那你问3天,不说N天连续登陆!
接近 2 年之前 回复
qq_31472377
qq_31472377 你这个都是写死的啊= =,如果是连续登陆10天呢。。。。。。
接近 2 年之前 回复
 select u_name from user where u_id in(
     select 
            u_id 
    from 
        login_record 
    where 
        date_format(now(),'%Y-%m-%d') =date_format(logintime,'%Y-%m-%d) 
    or 
        date_format(date_add(now(),interval -1 day),'%Y-%m-%d') = date_format(logintime,'%Y-%m-%d) 
    or 
        date_format(date_add(now(),interval -2 day),'%Y-%m-%d') = date_format(logintime,'%Y-%m-%d) 
    group by (u_id) 
    having count(u_id)>3
 )
qq_31472377
qq_31472377 你这个有问题,表中如果有相同的一天时间不同时间段,也会查出是连续登陆了一天,比如2017-8-8 11:30:00和2017-8-8 09:30:00
接近 2 年之前 回复
xiaoxiao_2020
xiaoxiao_2020 回复qq_31472377: 你可以传参数
接近 2 年之前 回复
qq_31472377
qq_31472377 厉害了,这样的确是可以,请问如果写灵活点怎么写,比如说,我想查10连续的,这样的话,不是得带很多的ort
接近 2 年之前 回复

我这个sql的思想主要是找出来N天前是哪些用户,然后看N天内有没有每天都登录,我没有测试,但我觉得应该是满足你的需求的,你可以测试一下,如果有问题可能稍微修正一下就行。
SELECT c.u_id,b.u_name FROM (
SELECT b.u_id,count(b.u_id) n from (
SELECT DISTINCT ll.u_id,date_format(ll.logintime, '%Y%m%d')
FROM login_record ll,
(SELECT l.id,l.u_id,l.logintime FROM login_record l where datediff(now(),l.logintime)=10) a
where ll.logintime>a.logintime) b
group BY b.u_id) c, users u
WHERE c.u_id=u.u_id
and c.n=10;

xingnima07
xingnima07 算出10天前的日期可以不用子查询,直接减更好,如下:SELECT c.u_id, b.u_name FROM ( SELECT b.u_id, count(b.u_id) n FROM ( SELECT DISTINCT ll.u_id, date_format(ll.logintime, '%Y%m%d') FROM login_record ll WHERE datediff(now(), ll.logintime) >= 10 ) b GROUP BY b.u_id ) c, users u WHERE c.u_id = u.u_id AND c.n = 10;
接近 2 年之前 回复

以前看到过一个贴子,是查询的表jjdb中所有的jjdwbh最大连续出现天数,下面是我改成我自己需要的:
SELECT * FROM
(SELECT * FROM(
SELECT jjdwbh,max(days) lianxu_days,min(login_day) start_date,max(login_day) end_date FROM(
SELECT jjdwbh,@cont_day := (
CASE
WHEN (
@last_uid = jjdwbh
AND DATEDIFF(bjsj, @last_dt) = 1
) THEN
(@cont_day + 1)
WHEN (
@last_uid = jjdwbh
AND DATEDIFF(bjsj, @last_dt) < 1
) THEN
(@cont_day + 0)
ELSE
1
END
) AS days,(@cont_ix := (@cont_ix + IF (@cont_day = 1, 1, 0))) AS cont_ix,@last_uid := jjdwbh,@last_dt := bjsj login_day
FROM
(SELECT jjdwbh,DATE(bjsj) bjsj FROM b_jjdb WHERE jjdwbh != 0 ORDER BY jjdwbh,bjsj) AS t,
(SELECT @last_uid := '',@last_dt := '',@cont_ix := 0,@cont_day := 0) AS t1
) AS t2
GROUP BY jjdwbh,cont_ix HAVING lianxu_days>5
)
as tmp ORDER BY lianxu_days DESC
)
ntmp GROUP BY jjdwbh;


我也是自己慢慢理解的,希望对你也有帮助

u010024904
xiao_calun 老哥,你这个写法很强,不过,我自己研究了另一种算法,也一样可以解决这种连续登陆的,有兴趣可以一起探讨。
接近 2 年之前 回复
jt_121217
jt_121217 还是靠自己去理解
接近 2 年之前 回复
jt_121217
jt_121217 指定结束时间向前推:as tmp WHERE end_date !="2017-10-13" ORDER BY lianxu_days DESC
接近 2 年之前 回复
jt_121217
jt_121217 修改:SELECT jjdwbh,DATE(bjsj) bjsj FROM b_jjdb WHERE jjdwbh != 0 and bjsj BETWEEN "2017-09-11 16:04:46" and "2017-10-16 16:07:05" ORDER BY jjdwbh,bjsj 连续登陆天数条件:HAVING lianxu_days >=3
接近 2 年之前 回复
jt_121217
jt_121217 时间范围限制:
接近 2 年之前 回复

老哥,你这个写法很强,不过,我自己研究了另一种算法,也一样可以解决这种连续登陆的,有兴趣可以一起探讨。

select d.id,d.firs_lianxu_time,max(d.lianxu_amount) lianxu_amount from (
select c.id,c.first_lianxu_time,count(distinct c.rn) lianxu_amount from (
select b.*,dateadd(dd,-b.rn,b.create_time) first_lianxu_time from (
SELECT a.create_time,a.id,dense_rank()over(partition by a.id order by a.create_time ) rn from (
select
cast(cast(create_time as varchar(10)) as date) create_time
,id
from table_test
where create_time>='2017-10-01'
) a
) b
) c
group by c.id,c.first_lianxu_time
) d
group by d.id,d.first_lianxu_time

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mysql 语句优化,求解答
select *,(select count(1) from `ol_classify` where recommend_id = u.user_id AND `Creation_time` >= 1477929600 ) count from `ol_classify` u rnwhere u.state >0 HAVING count >= 4 ,同表查找所有 recommend_id等于user_id的个数,然后在根据个数来筛选。这条语句查询速度太慢了,如何优化,或者怎么写能解决这种查询问题。
求SqlServer语句高手解答
有问题的语句:rnexec('insert into '+@ods_dbname+'.dbo.DictionaryLibrary select * from '+@linkname+'.'+@yuan_dbname+'.dbo.'+@tbname+' rn where LastModifyDateTimern between dateadd(day,-1,'+@start_time+') and '+@start_time+'')rn上面的一条语句是在存储过程里面的,编译是成功的,执行之后却没有数据rnrn有数据的语句:rninsert into ODS_GZ.dbo.ODS_T_DictionaryLibrary select * from link_gz.[GZ_EOMP].[dbo].[DictionaryLibrary] rnwhere LastModifyDateTime rnbetween dateadd(day,-1,@start_time) and @start_time;rnrn我想问存储过程的怎么会没有数据出来呢?怎么改?
一个SQL语句的问题,求高手解答
这是一张表,每一列ID对应客户名称,第四列第五列里面都是表第一列的ID,怎么将ID全部替换成对应的客户名称?rn比如:rnID 客户名称 第四列 第五列rn140 张三 139 |1||139|rn141 xx 140 |1|140|139|rn142 dd 11 |1|141|140|139|165|rn... ... ... ...rnrn这样的表 我想出的结果是“rnrnID 客户名称 第四列 第五列rn140 张三 王五 |管理员|张二|rnrn如何用sql实现, 谢谢!rnrnrnrn
求一个MYSQL语句
已知第一张表里的字段是 rnrnIDrn rnonetese(第一张表的内容)rnrn第2张表的字段是rnrnIDrn rnoneid(第一张表的ID)rnrntwotest(第二张表的内容)rnrnrn取出第二张表里 所有第一张表里的内容最新的4条记录
求一个mySQL语句
有一行数据如下:rnrn字段A 字段B rn310,311,314 312,313,314,315rnrnrn现在需要用一个sql语句,把这两个字段不仅合并到字段A,还需要去掉重复的,需要的结果如下:rnrn字段A 字段Brn310,311,312,313,314,315 rnrnrnrn这样的SQL语句该怎么写呢?
求一个mysql语句
情况是这样的,我想要一个MYSQL联合搜索的语句。返回页面的总搜索条数永远为10条。rnrn1:当搜索关键字返回结果大于10条时,全部返回结果显示为关键字搜索结果的前10条。rn2:当搜索关键字返回结果小于10条时,不足的条数用其他方式补足,且关键字结果总是排列在最前面,后面跟着补足部分。补足部分的结果要求不和前面搜索部分的结果重复。rnrn比如:返回结果只有7条符合搜索关键字,那么前7条显示关键字搜索结果,后3条由数据库按时间排列最新、且不和前7条结果重复的数据进行补足。rnrn基础语句如下,如何进行UNION或者GROUP BY,达到我需要的要求?谢谢。rn[code=SQL]rn(SELECT * FROM table WHERE WHERE MATCH (title,content) AGAINST ('+$boolean' IN BOOLEAN MODE) LIMIT 0,10 ORDER BY date)rnUNIONrn(SELECT * FROM table limit 0,10 ORDER BY date)rnlimit 0,10 ORDER BY date[/code]
求一个MYSQL语句。
tatle1 ,table2 结构相同,分别储存2种不同类型的产品。rnid | title | model | description | date | fullindexrnrn有这样一个mysql两表联合全文分页查询的语句。rnrn[code=sql](rnselect 'a' as tablename,* rnfrom table1 rnwhere MATCH (fullindex) rnAGAINST ('".mysql_real_escape_string($bool)."' IN BOOLEAN MODE)rn) rnUNIONE rn(rnselect 'b' as tablename,* rnfrom table2 rnwhere MATCH (fullindex) rnAGAINST ('".mysql_real_escape_string($bool)."' IN BOOLEAN MODE)rn)rnOrder By date DESC rnlimit ".$_POST['number'].",10[/code]rnrnrn现在要加一个功能,即结果中相同名字的model,最多只能出现5条。(group by model的话,相同名字的model只能出现一次)rnrn高手有什么方法吗?最好效率高一点,PS: fullindex加了全文索引,model已经加了普通索引。
求一个MYSQL的语句,请高手赐教
比如有两个字段 end_time(日期类型,如2017-05-26),daoqi (整数类型,如10) ,我想要end_time-daoqi<=今天,这样的语句能写吗,求高手。
求高手解答一个问题
[code=sql]CREATE TABLE #temprn (rn Customer_ID INT ,rn Handler INT ,rn Num INT ,rn Tran_Date DATETIMErn )rn INSERT #temprn ( Customer_ID ,rn Handler ,rn Num ,rn Tran_Datern )rn SELECT 73840,35240009,1,'2006/1/17 21:03'unionrnSELECT 73840,31130002,1,'2006/4/9 13:22'unionrnSELECT 73840,35570018,1,'2006/5/7 18:46'unionrnSELECT 73840,38290005,3,'2011/7/21 17:27'unionrnSELECT 73840,37550028,4,'2012/8/18 17:36'unionrnSELECT 73840,99990814,4,'2013/8/7 20:08'rnrnSELECT * FROM #temprnORDER BY #temp.Customer_ID,#temp.Num,#temp.Tran_Date[/code]rnrnrn如上面的代码所示,怎么找到Customer_ID的Handler值,Handler是取Num值最大,如果Num相同,则取Tran_Date最大值。Tran_Date是唯一的,没有相同。
大分求一个高手解答
create table Usertb --人员表rn (rn Usertb_id int identity(1,1), --序号rn Usertb_code varchar(50),--人员编号rn Usertb_name varchar(50),--人员名称rn )rn rn create table Sntb --时段表rn (rn Sntb_id int identity(1,1), --序号rn Sntb_name varchar(50),--时段名称rn Sntb_ksdt datetime,-- 开始时间rn Sntb_jsdt datetime-- 结束时间rn )rn rn create table Xfsource --消费表rn (rn Xfsource_id int identity(1,1), --序号rn Xfsource_code varchar(50),--人员编号rn Xfsource_jr int ,--消费金额rn Xfsource_sj datetime,-- 消费时间rn )rnrn 哪位神人帮写一个存储过程,返回一个查询,时段表可能会添加1个或多个时段,查询出所有人在已添加的时段内的消费额,rn (列如:张三 早餐消费了多少,中餐消费了多少 合计多少...),需要注意的是,如果我的一个时段设置为23:00:00rn 到 01:00:00 就跨天了,这个时段的数据也要统计到第二天1点前的.
Mysql数据库问题,求解答
![数据库出错](https://img-ask.csdn.net/upload/201805/22/1526973808_334520.png)n数据库查询出错:[Err] 1049 - Unknown database 'performance_schema'n
问个语句 求解答
GType for_example_get_type (void) G_GUNC_CONST;rn求解 语句 怎么看;rn帮忙解答给分,
求解答SQL语句
A列 B列 C列rnrn1001 AA 2012-01-02rn1001 BB 2012-02-05rn1002 CC 2012-02-30rn1003 DD 2012-02-15rn1005 DD 2012-04-03rnrn实现rnrnA列 B列 C列rnrn1001 BB 2012-02-05rn1002 CC 2012-02-30rn1003 DD 2012-02-15rn1005 DD 2012-04-03rnrn取a列唯一 还有c列最后时间rnrn
求sql语句解答
[img=https://img-bbs.csdn.net/upload/201611/21/1479735786_507502.png][/img]rn如何将这个表转换成这个表[img=https://img-bbs.csdn.net/upload/201611/21/1479735825_392651.png][/img]rn,结果按照id,时间,还有到访地排序。rn急求大哥帮助
SQL语句,求解答
[code=SQL]rn--1.学生表rnStudent(S#,Sname,Sage,Ssex) --S# 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别rn--2.课程表 rnCourse(C#,Cname,T#) --C# --课程编号,Cname 课程名称,T# 教师编号rn--3.教师表 rnTeacher(T#,Tname) --T# 教师编号,Tname 教师姓名rn--4.成绩表 rnSC(S#,C#,score) --S# 学生编号,C# 课程编号,score 分数rn*/rn--创建测试数据rncreate table Student(S# varchar(10),Sname nvarchar(10),Sage datetime,Ssex nvarchar(10))rninsert into Student values('01' , N'赵雷' , '1990-01-01' , N'男')rninsert into Student values('02' , N'钱电' , '1990-12-21' , N'男')rninsert into Student values('03' , N'孙风' , '1990-05-20' , N'男')rninsert into Student values('04' , N'李云' , '1990-08-06' , N'男')rninsert into Student values('05' , N'周梅' , '1991-12-01' , N'女')rninsert into Student values('06' , N'吴兰' , '1992-03-01' , N'女')rninsert into Student values('07' , N'郑竹' , '1989-07-01' , N'女')rninsert into Student values('08' , N'王菊' , '1990-01-20' , N'女')rncreate table Course(C# varchar(10),Cname nvarchar(10),T# varchar(10))rninsert into Course values('01' , N'语文' , '02')rninsert into Course values('02' , N'数学' , '01')rninsert into Course values('03' , N'英语' , '03')rncreate table Teacher(T# varchar(10),Tname nvarchar(10))rninsert into Teacher values('01' , N'张三')rninsert into Teacher values('02' , N'李四')rninsert into Teacher values('03' , N'王五')rncreate table SC(S# varchar(10),C# varchar(10),score decimal(18,1))rninsert into SC values('01' , '01' , 80)rninsert into SC values('01' , '02' , 90)rninsert into SC values('01' , '03' , 99)rninsert into SC values('02' , '01' , 70)rninsert into SC values('02' , '02' , 60)rninsert into SC values('02' , '03' , 80)rninsert into SC values('03' , '01' , 80)rninsert into SC values('03' , '02' , 80)rninsert into SC values('03' , '03' , 80)rninsert into SC values('04' , '01' , 50)rninsert into SC values('04' , '02' , 30)rninsert into SC values('04' , '03' , 20)rninsert into SC values('05' , '01' , 76)rninsert into SC values('05' , '02' , 87)rninsert into SC values('06' , '01' , 31)rninsert into SC values('06' , '03' , 34)rninsert into SC values('07' , '02' , 89)rninsert into SC values('07' , '03' , 98)rngorn--求:查询和"01"号的同学学习的课程完全相同的其他同学的信息 的正解rn[/code]
求解答sql语句
html,bodypadding:0;margin:0;font-family:Verdana,Geneva,sans-serif;background:#fff;htmlfont-size:100%bodyfont-size:.75em;line-height:1.5;padding-top:1px;margin-top:-1px;h1font-size:2em;margin:.67em 0h2font-size:1.5emh3font-size:1.16emh4font-size:1emh5font-size:.83emh6font-size:.7empmargin:0 0 1em;padding:0 .2em.t-markerdisplay:none;.t-paste-containerposition:absolute;left:-10000px;width:1px;height:1px;overflow:hiddenul,olpadding-left:2.5emacolor:#00acode, prefont-size:1.23emrnSET @sql = N'SELECT COUNT(DISTINCT ' rn+ QUOTENAME(@colname) + N') FROM ' rnrn+ QUOTENAME(@schemaname) rnrn+ N'.'+ QUOTENAME(@tablename) rn rn+ N';'; rnrnrnrnrn请问上面的 ‘+是什么意思???rnrn‘是干什么的?rnrn+是干什么的?rn
求 T-SQL 语句解答
if exists (select * from sys.objects where object_id=(n'[dbo].[sp_info]') and type in (n'p',n'pc'))rn前面部分:如果系统表中不存在sp_info 对象,后面and type in (n'p',n'pc'))这句是什么意思? p,pc 是数据类型吗?
这条语句求解答
Button3.Attributes.Add("onclick", "if(confirm('你确定要执行这个操作吗?')) window.location='A.aspx?uid='"+Label1.Text+"'';else window.location='C.aspx'; return false;");rnrn这条语句为何不起作用?rnrnwindow.location='A.aspx?uid='"+Label1.Text+"''rnrn是不是这句写错了?rnrnrn
求mySQL的一个简单语句
rn问一个简单问题,就是用户登录以后到一个表单页面,表单里面的各个文本域显示用户在数据里记录的信息,用户可以重新修改这些信息并保存,这个怎么做? 谢谢啊!rn[code=PHP][/code]$query = "SELECT Business_Owner,Business_Name, Mailing_Address,Phone_Number,Crop_Type,Crop_Location,Section,Township,Range,Quarter,Acreage FROM pesticide_sensitive_crop where userid = ".$_GET["userid"].";";rnrn主要问题就是怎么把上面从数据库提取的这些 Business_Owner,Business_Name,Mailing_Address等等分别赋值给表单里的各个文本域?? 谢谢大家!!rnrnrn
求一个mysql的sql语句。
表productrnid,name,pricern1 ,aa,42rn2,bb,22rn3,bb,33rnrn用一个sql句子取按价格(price)排序后的第二条记录。rnrn谢谢大家
求一个mysql语句,谢谢
数据表结构是这样rn表名:tablernid name scorernrn现在有这样多条记录rnrnid name scorern1 user1 90rn2 user1 60rn3 user2 98rn4 user2 60rn5 user3 75rn6 user4 85rn7 user4 60rnrn我想请教rn怎么构造得到这个表的人数(结果应该4个人)?
求一个mysql的 数据库语句!!!!!
现在有一堆 表。rn字段类似有: a_asdasd b_asdasd c_sdasd N个rnrn我现在想找所有字段中带user关键词的字段 语句是啥啊?
求一个更新的mysql语句
结构rnid name parentsrn1 a nullrn2 b 1rn3 c 1,2rn4 d 1,3rnrn现在新加一个字段parents_name,想通过mysql实现值的对应填入。请问该如何做?rnid name parents parents_namern1 a nullrn2 b 1 arn3 c 1,2 a,brn4 d 1,3 a,crnrnrn
求一个简单的MySQL语句
有下面三个表,我用什么SQL语句能一次把三个表中与aid=12有关联的记录全部删除呢?rnrnA表:rn aid rn --------rn 11rn 12rn 13rnB表:rn bid aidrn --------rn 1 12rn 2 11rn 3 13rnC表:rn cid bid contentrn -----------------rn 1 3 fdsarn 2 2 gfhfrn 3 1 oppo
求一个MySql的SQL语句
数据库MYSQL, 我想用SQL语句虚拟一个数据集,比如从2015年11月到2016年8月的年月记录集, rn2015-11rn2015-12rn2016-01rn2016-02rn2016-03rn2016-04rn2016-05rn2016-06rn2016-07rn2016-08rnrn-----------------------------rn得到这个数据集后再去左链接其它的表, 不用临时表, 只用SQL能否实现?rn用union all 做是不现实的, 因为我可能还希望用此方法获得某段时期内的日期数据集。rnOracle的话可以用connect by 做到, MYSQL不熟,不知道。rnrn谢谢!
求mysql的一个sql语句!
这样的,在access中有这样一个语句rndelete from temps where datediff('n',logtime,now())>=5 and admin='feng'rn在mysql中是不合法的rn怎样把这句话改成能在mysql中执行!!!执行的效果当然要求相同了
求解答求解答
一般公司招C++程序员是写什么样的程序?windows程序还是什么?rnC++到底能写些什么东西?rn一直说写游戏写游戏,但是我就是不明白怎么写游戏?rnVC++?MFC?API?我怎么感觉这三样都是另外的语言啊???????
求解答,求解答,求解答,谢谢
![图片](https://img-ask.csdn.net/upload/201512/14/1450082237_371680.jpg)
mysql与应用程序问题,求高手解答
用应用程序连接mysql时,当mysql中的主数据中断时,能否立马连接到备份的数据中,是否需要设置mysql同时连接两个还是只连接其中一个?
sql语句疑难问题 求高手解答
name num staternA 5 -rnB 4 -rnC 3 -rnA 4 +rnB 3 +rnC 2 +rnA 3 +rnB 2 +rnC 1 +rnrnrn希望结果rnA 5 -rnB 4 -rnC 3 -rnA 7 +rnB 5 +rnC 3 +rnrn即根据state的正负和name分组,对num求和,请高手解答rn另外,求出来之后可以用SqlDataReader读出来吗,读的时候顺序是怎样的?
求SQL语句,请高手解答
1、rnsqlserver中有没有想oracle中decode这样的功能?就是说比如我从table1中select一个值rnrntable1中有col1,col2,col3rn select中如果col3=0,则select col1,rn 如果col3=1,则select col2,rn但这个在一句话里面搞定rn。rn类似于:select decode(col3,0,col1,1,col2) from table1rnrn2、rn表1中有列col1,col2,表2中也有col1,col2,对两个列的数据,现想select出来表2中有而表1中没有的记录rnrn。
mysql的使用问题,求高手解答
函数原型rnset global log_bin_trust_function_creators = 1;rndrop function if exists ld;rndrop function if exists sim;rndelimiter @rnrncreate function ld(s1 varchar(25),s2 varchar(25)) returns varchar(256)rnrnbeginrndeclare s1_len int default 0;rndeclare s2_len int default 0;rndeclare i int default 0;rndeclare j int default 0;rndeclare _i int default 0;rndeclare _j int default 0;rndeclare pos int default 0;rndeclare temp int default 0;rndeclare ss varchar(625);rndeclare _ss varchar(625);rndeclare _t1 varchar(1);rndeclare _t2 varchar(1);rndeclare _t3 varchar(1);rnset s1_len=length(s1); rnset s2_len=length(s2);rnIf s1_len=0 then return s2_len; rnend if;rnIf s2_len=0 then return s1_len;rnend if;rnSet ss=repeat('0',(s1_len+1)*(s2_len+1));rnSet i=0;rnmyloop1:looprnset i=i+1;rnset _ss=concat(substring(ss,1,i-1),i-1,substring(ss,i+1));rnset ss=_ss;rnif i>s1_len then leave myloop1;rnend if;rnend loop myloop1;rnset i=0;rnmyloop2:looprnset _i=i*(s1_len+1);rnset i=i+1;rnset _ss=concat(substring(ss,1, _i),i-1,substring(ss,_i+2));rnset ss=_ss;rnif i>s2_len then leave myloop2;rnend if;rnend loop myloop2;rnrnset i=1;rnmyloop3:looprnset i=i+1;rnset _t1=substring(s1,i-1,1);rnrnset j=1;rnmyloop4:looprnset _j=j*(s1_len+1);rnset j=j+1;rnset _t2=substring(s2,j-1,1);rnrn if _t1=_t2 then set temp=0;rn else set temp=1;rn end if;rn set pos=(i-1)*(s2_len+1)+j;rn set _ss=concat(substring(ss,1,pos-1),least(substring(ss,pos-1,1) + 1,substring(ss,pos-1-s2_len,1) + 1, substring(ss,pos-1-s2_len-1,1) + temp), substring(ss,pos+1));rn set ss=_ss;rn rnif j>s2_len then leave myloop4;rnend if;rnend loop myloop4;rnIf i>s1_len then leave myloop3;rnend if;rnend loop myloop3;rnReturn substring(ss,-1,1);rnend @rnCreate function sim(s1 varchar(25),s2 varchar(25)) returns floatrnbeginrndeclare i int default 0;rndeclare ldval float default 0;rnset i=ld(s1,s2);rnset ldval = 1 - i / greatest(length(s1),length(s2));rnreturn ldval;rnend @rnrn此函数返回的是字符串的相似度rnrn这样使用select sim('12','123')一点问题都没有rn为什么这样不行 select user_like from user where sim(user_like,'123')>0.6 。。。。。。。rn求高手解答.....在线等
求JAVA高手解答?
各位大哥,小弟刚学JAVA谁能给我讲讲这些题,越详细越好!rn1、写出输出rnpublic class Jtestrnint m=1;rnint i=3;rnvoid Jtest()rnm=2;rni=4;rnrnpublic static void main(String[] args)rnJtest app=new Jtest();rnSystem.out.println(app.m+","+app.i);rnrnrn1,3rnrnrn2、写出输出rnpublic class Jtestrnint m=1;rnint i=3;rnJtest()rnm=2;rni=4;rnrnpublic static void main(String[] args)rnJtest app=new Jtest();rnSystem.out.println(app.m+","+app.i);rnrnrn2,4rnrnrn传实参:rn3、public class Test rn public static void main(String[] args) rnint a=99;rnrnoper(a);rnSystem.out.print(a);rnrn static void oper(int b)rn rn b=b+100;rn rnrn99rnrnrn4、写出输出rnpublic class Test rn public static void main(String[] args) rnString a=new String("A");rnString b=new String("B");rnoper(a,b);rnSystem.out.print(a+","+b);rnrn static void oper(String c,String d)rn c.concat("B");rn d=c;rn rnrnA,Brnrnrn5、写出输出rnpublic class Test rn public static void main(String[] args) rnStringBuffer a=new StringBuffer ("A");rnStringBuffer b=new StringBuffer ("B");rnoper(a,b);rnSystem.out.print(a+","+b);rnrn static void oper(StringBuffer c,StringBuffer d)rn c.append("B");rn d=c;rn rnrnAB,Brnrn
求高手解答
运行Ajax网站时报下面的错误是什么原因呢?该如何解决?rn找不到方法:“Void System.Web.UI.ScriptManager.RegisterStartupScript(System.Web.UI.Page, System.Type, System.String, System.String, Boolean)”。
急求高手解答
buffer[0] ^= buffer[1];rnbuffer[2] ^= buffer[3];rn rnbuffer[0] ^= buffer[2];rnbuffer[0] ^= ( buffer[0] >> 16 );rnbuffer[0] ^= ( buffer[0] >> 8);rnbuffer里储存的是一个128位的二进制数,请问如何将以上程序用公式表达出来呢?请高手不吝赐教!rn 我试着这样表达rn buffer1=buffer ( buffer*2(-64次方) ) rn buffer2=buffer1 ( buffer1*2(-32次方) ) rn buffer3=buffer2 ( buffer2*2(-16次方) ) rn buffer4=buffer3 ( buffer3*2(-8 次方)) rn但是,这样,2(-64次方)数太小,无法表示,请问有什么办法表示出来呢?
求高手解答!!
老师出了这么个题n=a!+b!+c! n为三位数,a,b,c,分别为百位十位个位,要求用自定义函数求阶乘rnrn我是个菜鸟,希望有老手帮我解决一下这个代码为什么不行!rn#include rnusing namespace std;rnlong fac(int n);rnint main()rnrn int n,a,b,c;rn for(n=100;n<1000;++n)rn rn a=n/100; //三位数的百位rn b=n%10/10;//三位数的十位rn c=n%10;//三位数的个位rn if (n==fac(a)+fac(b)+fac(c))rn cout<
求高手解答!!!!!!!!!!!!
[code=sql] select rn A.MO_NUMBER,rn (decode(A.GROUP_NAME , 'PACKING', count(*))) PACKING,rn (decode(A.GROUP_NAME, 'MAC INPUT', count(*))) MAC_INPUT,rn (decode(A.GROUP_NAME, 'FT2', count(*))) FT2,rn (decode(A.GROUP_NAME, 'AOI II', count(*))) AOI_II,rn (decode(A.GROUP_NAME, 'MAC COMPARE', count(*))) MAC_COMPARE,rn (decode(A.GROUP_NAME, 'ASY-1', count(*))) ASY_1,rn (decode(A.GROUP_NAME, 'VISUAL INSPECT', count(*))) VISUAL_INSPECTrnfrom rn SFISM4.R_WIP_TRACKING_T a rn where A.MO_NUMBER='005700000405-1'rngroup by A.MO_NUMBER, A.GROUP_NAME[/code]rnrn輸出如下:rn005700000405-1 20 rn005700000405-1 4 rn005700000405-1 1 rn005700000405-1 9 rn005700000405-1 4 rn005700000405-1 rn005700000405-1 2 rn005700000405-1 18
求高手解答错误
rn rn 贵美商城rn rn rn rn rn rn rn rn rn rn 手机充值-IP卡-电话卡rn 网游-点卡-金币-代练rn rn rn 移动rn 联通rn 魔兽rn 跑跑卡丁车rn rn rn rn rn
求高手解答,急~~~~
[code=C#]rnstring countryDHLId = "Area" + countryInfo.DHLArea.ToString();rnrnvar info = from df in db.DHLFreightsrn where df.WeightMax >= weight && df.WeightMin <= weightrn select newrn rn countryDHLIdrn ;rnrndouble dhlFreight = double.Parse(info.First().countryDHLId);rnrnrn[/code]rnrn我想查DHLFreights 的某一个字段 countryDHLId 可能是Area1~~~Area9,可是为什么不能把这个字段的数据查出来呢
求jsp高手解答
小弟使用spring +mybatis+ druid 进行jsp开发 rn刚搭好环境。出现以下错误。麻烦大神指点rnrn[DEBUG] 2014-05-08 15:55:08 :Looking up JNDI object with name [java:comp/env/spring.liveBeansView.mbeanDomain]rn[DEBUG] 2014-05-08 15:55:08 :Converted JNDI name [java:comp/env/spring.liveBeansView.mbeanDomain] not found - trying original name [spring.liveBeansView.mbeanDomain]. javax.naming.NameNotFoundException: Name [spring.liveBeansView.mbeanDomain] is not bound in this Context. Unable to find [spring.liveBeansView.mbeanDomain].rn[DEBUG] 2014-05-08 15:55:08 :Looking up JNDI object with name [spring.liveBeansView.mbeanDomain]rn[DEBUG] 2014-05-08 15:55:08 :JNDI lookup for name [spring.liveBeansView.mbeanDomain] threw NamingException with message: Name [spring.liveBeansView.mbeanDomain] is not bound in this Context. Unable to find [spring.liveBeansView.mbeanDomain].. Returning null.rn[DEBUG] 2014-05-08 15:55:08 :Searching for key 'spring.liveBeansView.mbeanDomain' in [systemProperties]rn[DEBUG] 2014-05-08 15:55:08 :Searching for key 'spring.liveBeansView.mbeanDomain' in [systemEnvironment]rn[DEBUG] 2014-05-08 15:55:08 :Could not find key 'spring.liveBeansView.mbeanDomain' in any property source. Returning [null]rn[DEBUG] 2014-05-08 15:55:08 :Published root WebApplicationContext as ServletContext attribute with name [org.springframework.web.context.WebApplicationContext.ROOT]rn[INFO ] 2014-05-08 15:55:08 :Root WebApplicationContext: initialization completed in 2755 ms
相关热词 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天 c#func链接匿名方法 c#怎么创建文件夹 c#从键盘接收空格 c#da/ad c#部门请假管理系统 c#服务器socket c# 默认的访问修饰符