说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

是一个sql语句,请问一下能不能在SQL语句下用循环

编辑:说三道四文库 发布时间:2018-07-20 11:07
HTML文档下载 WORD文档下载 PDF文档下载
我有个字段叫做column1
里面如果有一个值时写为20040101
如果有两个值时写为20040101\20040102
依次,有四个就是20040101\20040102\20040103\20040104

现在举几条数据,
第一条的这个column1字段里写入20030105\20000206
第一条的这个column1字段里写入20040101\20040102\20040103\20000104
第一条的这个column1字段里写入20040101\20040103\20010104

我在前台的一个别textbox里输入2000时
我就能select出第一条和第二条数据,而得不到第三条数据

for ....
column1=20040101
column1=+1
sql=+"column1"
next...
select...
不知道有没有用 ?
不太明白你的意思
是不是找出字段里含有2000的纪录,如果是用select * from table where column1 like '2000'
刚才没有说清,我是想在输入2001的时候才会出去含有2000的值的数据,也就是要得到小于2001的数据
第一条的这个column1字段里写入20030105\20000206
第二条的这个column1字段里写入20040101\20040102\20040103\20000104
第三条的这个column1字段里写入20040101\20040103\20010104
在这三条数据里只有一和二满足,所以我要把1和2取出
只以年比较的话好做因为没有大于12的月和大于2010的年直接找包含(like)的就可以了
要年月日一起比较的话。。。。。
那你们看换个什么别的方案更方便吗,我到底怎么样才能实现,可能是我的数据库设计不合理
这样我说的更清楚一点,你们看看有没有什么好的办法:
    我要记录一个人来过的时间,那么在usertable里面就是所有的用户,在这个表里还有一个字段就是他来过的所有时间,这个字段就是我的前面的问题所说的(例如:20040101\20040102\20040103\20000104),那么我在做查询的时候我只用在textbox里输入2001的时候,就能得出2001年以前来过的人的记录,当字段值是20040101\20040102\20040103\20000104是,就会将这个值用Split()以“\”进行分段,然后循环每一段的前四位看有没有小于2001的只要有就得到这条记录
新建一个表,记录所有用户登录过的时间和id
userid     date
如果真的没有好的算法解决那就只有用新建表的办法了
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘