【问题标题】:MySQL query - getting not inserted ids to insert new row to a tableMySQL查询-未插入ID以将新行插入表
【发布时间】:2014-07-21 03:07:20
【问题描述】:

我有两张桌子

第一个是进程

第二个是medialist

我想插入一个新行来处理,但我需要一个以前用户未插入的 medialist.id。

从 user_id=648 的进程中选择 medialist_id -> 这将返回插入的行。

我希望将这些行从 medialist 表中排除,并获取一个随机的 medialist id 以将新行插入到 medialist 表中。

执行此操作的最佳成本效益方法是什么?

【问题讨论】:

    标签: mysql sql


    【解决方案1】:
    INSERT INTO process (user_id,ads_id,medialist_id,`status`) SELECT 'your_uid','your_ads_id',id,'your_status' FROM medialist WHERE id NOT IN (SELECT medialist_id FROM process) ORDER BY RAND() LIMIT 1
    

    【讨论】:

    • 感谢您的回答。它有效,但如果其他人想使用它。我建议在最后添加限制 1。不幸的是,执行时间太长了。但我想没有其他方法可以更快地做到这一点。 :)
    • 很高兴我能帮上忙。也用限制 1 编辑了我的帖子(忘记了:P)
    猜你喜欢
    • 1970-01-01
    • 2018-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 1970-01-01
    相关资源
    最近更新 更多