现在我有一个查询:
$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表中,
$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:
$id1 = $wpdb->insert_id;因此,我需要将所有ids插入到wpr9_postmeta中。
发布于 2020-08-29 23:13:14
在查询执行后,有多个可以获得插入ids,例如server中的@@IDENTITY、SCOPE_IDENTITY()、IDENT_CURRENT(‘table’)等等。
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。工作很辛苦。可以声明开始游标和结束游标,在它们之间,可以按以下方式运行查询
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 idhttps://stackoverflow.com/questions/63649975
复制相似问题