此语句返回我的字段数量(0-3):
SELECT COUNT(meta_key) FROM `fWR6qIN_postmeta` Where meta_key like 'product_shops_%_price' AND (post_id = 7951)
在这种情况下,我得到一个4.所以我有0到3字段的值。对于我需要的每个数字product_shops_%_price
,product_shops_%_price_old
,product_shops_%_shop
和product_shops_%_link
。所以,4 * 4 = 16个值。
现在我想将查询从4个查询减少到1个。以前我问过每隔4个字段。所以我得到4个值为0,值为1,所以...
我的计划现在是优化SQL语句并一次选择所有16个值。有没有人有计划如何做到这一点?
而且,如果我可以打包一个数组中包含0的所有值,包含数组中的1等等,那将是非常好的...所以我可以轻松地迭代它们。
我会非常感谢帮助! 问候!
答案 0 :(得分:0)
这不是你想要的吗?
SELECT *
FROM `fWR6qIN_postmeta` pm
WHERE meta_key like 'product_shops_%' AND
post_id = 7951;
编辑:
这应该做你想要的:
SELECT *
FROM `fWR6qIN_postmeta` pm
WHERE meta_key regexp '^(product_shops)_(link|price|price_old|shop)$' AND
post_id = 7951;
您也可以使用单独的like
表达式执行此操作:
SELECT *
FROM `fWR6qIN_postmeta` pm
WHERE post_id = 7951 AND
(meta_key like 'product_shops_%_price' OR
meta_key like 'product_shops_%_link' OR
meta_key like 'product_shops_%_price_old' OR
meta_key like 'product_shops_%_shop'
);