ai didi

mysql - "Insert if doesn' t 在 post_meta 表 WP 中存在 "only for product type = ' 产品

转载 作者:行者123 更新时间:2023-11-30 22:38:40 24 4
gpt4 key购买 nike

我找到了几个关于如何“插入……”“不存在的地方”的解释,但这并没有解决我的问题。

我正在使用 Wordpress,我有一个名为 wp_posts 的表,其中包含帖子、产品、product_variations、附件等数据

每次在 wp_posts 中创建产品时,我都必须在 mysql 中运行查询以在 wp_postmeta 中创建一个名称为“_special_stock”且值为“0”的自定义字段。

我发现:

INSERT INTO wp_postmeta (post_id, meta_key, meta_value) 
SELECT wp_posts.ID, '_special_stock', '0'
FROM wp_posts
WHERE NOT EXISTS (SELECT post_id
FROM wp_postmeta
WHERE post_id=wp_posts.ID)

该代码完美运行,但它不仅包括产品行,还包括其他产品类型的行,我必须包括一个条件,以便插入仅用于产品和 product_variation 的 meta_key (_special_stock),像这样:

INSERT INTO wp_postmeta (post_id, meta_key, meta_value) 
SELECT wp_posts.ID, '_stock', '0'
FROM wp_posts
WHERE NOT EXISTS (SELECT post_id
FROM wp_postmeta
WHERE post_id=wp_posts.ID)
WHERE wp_posts.product_type='product'
OR wp_posts.product_type='product_variation';

但它不起作用。

有人可以帮帮我吗??

蔡欧

最佳答案

没有人回答,但我终于找到了解决办法,所以我想和你分享。我不是专家,所以我不知道它是否是最好的解决方案,但它对我有用......:)

BEGIN

INSERT IGNORE INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT wp_posts.ID, '_stock', '0'
FROM wp_posts
WHERE wp_posts.post_type = 'product'
AND NOT EXISTS (SELECT post_id
FROM wp_postmeta
WHERE wp_postmeta.post_id = wp_posts.ID);

INSERT IGNORE INTO wp_postmeta (post_id, meta_key, meta_value)
SELECT wp_posts.ID, '_stock', '0'
FROM wp_posts
WHERE wp_posts.post_type = 'product_variation'
AND NOT EXISTS (SELECT post_id
FROM wp_postmeta
WHERE wp_postmeta.post_id = wp_posts.ID);

END

我希望这对其他人有用!但是,如果有人知道任何其他方法来实现结果,我真的很感激。在 wp_posts 中插入产品后,我将尝试在我的数据库中触发此语句。

关于mysql - "Insert if doesn' t 在 post_meta 表 WP 中存在 "only for product type = ' 产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31699263/

24 4 0
文章推荐: c# - 替换文本框中的
文章推荐: Python 搜索并打印值
文章推荐: c# - 使用 OpenTK/MonoTouch 从顶点列表中绘制?
文章推荐: python - boto3 中 boto.exception.BotoServerError 的等价物是什么
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com