You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在wp_postmeta表中获取barcode与_sku值相同的post_id?

解决wp_postmeta表中匹配barcode和_sku相同meta_value的post_id问题

原SQL语句报错的原因是WHERE子句中的meta_key = 'barcode' = '_sku'属于错误语法,MySQL会尝试将字符串'_sku'转换为数值类型,导致触发#1292 Truncated incorrect DECIMAL value错误。

以下是两种可行的实现方法:

方法一:自关联JOIN(推荐,性能更优)

通过将表自身关联,匹配同一个post_id下meta_key分别为'barcode'和'_sku'且meta_value相同的记录:

SELECT pm1.post_id
FROM wp_postmeta pm1
JOIN wp_postmeta pm2 
  ON pm1.post_id = pm2.post_id
WHERE pm1.meta_key = 'barcode'
  AND pm2.meta_key = '_sku'
  AND pm1.meta_value = pm2.meta_value
-- 如需指定具体的meta_value(比如123),添加以下行
-- AND pm1.meta_value = '123'

方法二:分组聚合(写法简洁)

通过分组统计,筛选出同时包含'barcode'和'_sku'且meta_value一致的post_id:

SELECT post_id
FROM wp_postmeta
WHERE meta_key IN ('barcode', '_sku')
GROUP BY post_id, meta_value
HAVING COUNT(DISTINCT meta_key) = 2
-- 如需指定具体的meta_value(比如123),添加以下行
-- AND meta_value = '123'

性能说明

如果wp_postmeta表已创建post_id + meta_key的联合索引,自关联JOIN的查询效率通常更高,因为能快速定位到目标键值记录;分组聚合的写法更简洁,但在数据量较大时,JOIN的性能表现更稳定。

内容的提问来源于stack exchange,提问作者Jasinka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 22:05:51