V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
akaayy
V2EX  ›  问与答

mysql 中,怎么把一个字段的默认值设置为 id 的 2 倍?

  •  
  •   akaayy · 2014-07-15 21:59:09 +08:00 · 6756 次点击
    这是一个创建于 3810 天前的主题,其中的信息可能已经有所发展或是发生改变。
    id就是自动增加的序号,大家都懂的。
    有办法在设计mysql表的时候把某个int的字段设置为id的2倍吗?

    如果上面思路无法实现,那么在插入数据的时候在php中可以怎么实现呢?

    ----------------------
    这个id的2倍的字段主要是用于排序的,有了这个字段,我就可以精确控制某一篇文章排在指定文章的后面了。 实现这样的功能,还可以有什么好技巧?
    11 条回复    2018-05-07 17:39:02 +08:00
    skydiver
        1
    skydiver  
       2014-07-15 22:00:29 +08:00   ❤️ 1
    让序号递增2不就行了。。为什么要再来一列
    akaayy
        2
    akaayy  
    OP
       2014-07-15 22:01:52 +08:00
    @skydiver 序号id有自己的作用,是索引字段。新的这一列是listorder,排序用的
    sambohuang
        3
    sambohuang  
       2014-07-15 22:14:52 +08:00 via Android
    那就用id排序不就行了
    jsonline
        4
    jsonline  
       2014-07-15 22:26:08 +08:00 via Android
    不要依赖ID啊,会被坑的
    superbear
        5
    superbear  
       2014-07-16 10:02:25 +08:00   ❤️ 1
    有没有存文章的create_time呢?用时间排序也可以的啊
    iscraft
        6
    iscraft  
       2014-07-16 10:10:30 +08:00   ❤️ 1
    @jsonline 自增id唯一 应该很靠谱吧

    @akaayy last insert id取到后x2然后update 只能先插入 后修改
    三楼sambohuang说的没错啊 如果id唯一 用来控制排序就好
    skydiver
        7
    skydiver  
       2014-07-16 12:44:34 +08:00 via Android   ❤️ 1
    我觉得这是个AB问题……
    楼主最好说一下真正是想作成什么功能……应该不需要这么蹩脚的方法实现
    akaayy
        8
    akaayy  
    OP
       2014-07-16 14:17:26 +08:00
    @skydiver
    想实现的功能说了啊,就是精确控制排序。例如这个字段名是list_order,添加新纪录依序默认是0,2,4,6,8,后来我想把8放到0后面,我就改为1。


    @superbear
    用时间排序也行,但是我修改排序就需要把生成时间也改了,非我本意。那么我还是需要新建一个用于排序的字段,这当然也可以解决我的问题。。我只是想用更小的数字来实现。
    caofugui
        9
    caofugui  
       2014-07-16 15:40:04 +08:00
    list_order默认为0,排序值=ID+list_order
    设定list_order可以为负数即可
    superbear
        10
    superbear  
       2014-07-16 16:14:26 +08:00
    @akaayy 大概懂你意思了,要做那种类似置顶的功能,那是得加个字段或者想其他办法来实现
    LittleDust
        11
    LittleDust  
       2018-05-07 17:39:02 +08:00
    还是没有解决问题啊=。=
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3056 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:08 · PVG 22:08 · LAX 06:08 · JFK 09:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.