一个查询问题

Cat_Of_9Life 2009-11-19 06:06:58
数据库表tab_rec,有字段v_path, 类型是varchar(255),内容形如d:\temp\20091116\,其中20091118是日期
怎样找到离当前日期最近的v_path
...全文
68 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2009-11-19
  • 打赏
  • 举报
回复
select *
from tab_rec
where substring_index(v_path,'\\',-2)=(select max(substring_index(v_path,'\\',-2)) from tab_rec)
Cat_Of_9Life 2009-11-19
  • 打赏
  • 举报
回复
笔误

数据库表tab_rec,有字段v_path, 类型是varchar(255),内容形如d:\temp\20091116\,其中20091118是日期;
有个结构跟tab_rec一样的表tab_rec_copy,
还有个表tab_bak,其中有字段v_srcdir ,内容形式雷同tab_rec的v_path

怎样从tab_rec和tab_rec_copy两表中找到离当前日期最近的v_path,且该v_path值不存在于表tab_rec的v_srcdir
Cat_Of_9Life 2009-11-19
  • 打赏
  • 举报
回复
thanks, 还有个更复杂点的
数据库表tab_rec,有字段v_path, 类型是varchar(255),内容形如d:\temp\20091116\,其中20091118是日期;
有个结构跟tab_rec一样的表tab_rec_copy,内容形式雷同tab_rec的v_path
还有个表tab_bak,其中有字段v_srcdir

怎样从tab_rec和tab_rec_copy两表中找到离当前日期最近的v_path,且该v_path值不存在于表tab_rec的v_srcdir
vinsonshen 2009-11-19
  • 打赏
  • 举报
回复
select v_path from tab_rec where left(substring_index(v_path,'\\',-2),8) =(select max(left(substring_index(v_path,'\\',-2),8)) from tab_rec)
vinsonshen 2009-11-19
  • 打赏
  • 举报
回复
select max(left(substring_index(v_path,'\\',-2),8)) from tab_rec
vinsonshen 2009-11-19
  • 打赏
  • 举报
回复
那也就是最大日期那条记录了?

试下:
select * from tb_name a where not exists (select 1 from tb_name b where substring_index(b.v_path,'\\',-2)>a.substring_index(b.v_path,'\\',-2))

57,062

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧