首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取post的所有id我通过自定义查询添加它

获取post的所有id我通过自定义查询添加它
EN

Stack Overflow用户
提问于 2020-08-29 17:39:50
回答 1查看 64关注 0票数 1

现在我有一个查询:

代码语言:javascript
复制
$query1 =  "
INSERT INTO wpr9_posts
(post_date
, post_content
, post_title
, post_status
, post_name
, post_type)  
SELECT '2020-08-28 18:30:43'
     , image
     , name
     , 'publish'
     , id
     , 'post' 
  FROM play
 WHERE catid = 863
" ;
$loopids = $wpdb->query($wpdb->prepare($query1));

此查询插入114行,将其添加到wpr9_posts表后,需要将所有ids添加到tis表中以将其添加到wpr9_postmeta表中,

代码语言:javascript
复制
$query2 =  "INSERT INTO wpr9_postmeta ( `post_id`,`meta_key`,`meta_value` ) 
SELECT '".$id1."', 'mp3url',`image` FROM `play` WHERE `catid` = '863'" ;
$wpdb->query(
    $wpdb->prepare($query2)
);

此查询只添加一行,因为我只能通过以下方法获得一个id:

代码语言:javascript
复制
$id1 =  $wpdb->insert_id;

因此,我需要将所有ids插入到wpr9_postmeta中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-29 23:13:14

在查询执行后,有多个可以获得插入ids,例如server中的@@IDENTITY、SCOPE_IDENTITY()、IDENT_CURRENT(‘table’)等等。

代码语言:javascript
复制
INSERT INTO wpr9_posts (...) VALUES (...)
SET @LASTID = @@IDENTITY

INSERT INTO wpr9_posts (...) VALUES (...)
SET @LASTID = SCOPE_IDENTITY()

SET @LASTID = IDENT_CURRENT('dbo.wpr9_posts')

至于Mysql。工作很辛苦。可以声明开始游标和结束游标,在它们之间,可以按以下方式运行查询

代码语言:javascript
复制
    declare start_pk int;
    declare end_pk int;

    set start_pk = last_insert_id(); -- lets say 100
    
    INSERT INTO wpr9_posts
(post_date
, post_content
, post_title
, post_status
, post_name
, post_type)  
SELECT '2020-08-28 18:30:43'
     , image
     , name
     , 'publish'
     , id
     , 'post' 
  FROM play
 WHERE catid = 863

    set end_pk = last_insert_id(); -- lets say 200
    -- result any ids in from 100 to 200 is your inserted id
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63649975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档