2017-04-17 5 views
-1

SQL問合せを使用して、woocmmerce製品をロードしています。woocommerceでSQLを検索

私のコードは、このコードで

SELECT ID,post_title,post_type, (select meta_value from wp_postmeta where meta_key='_sku' and post_id=ID) as sku 
FROM wp_posts,wp_postmeta 
where post_type='product' and post_status='publish' and post_id=ID 
group by ID 

下記のようですが、私はSKU、postid、記事のタイトルを検索したいので、私は正常に動作していないコードの下のコードを、書きました。

SELECT ID,post_title,post_type, (select meta_value from wp_postmeta where meta_key='_sku' and post_id=ID) as sku 
FROM wp_posts,wp_postmeta 
where post_type='product' and post_status='publish' 
    **AND (post_title LIKE 'WS1006%' OR sku LIKE 'WS1006%' OR ID LIKE 'WS1006%') 
group by ID** 
+0

このクエリは、コードの作業が非常に遅く作る それは返事 –

答えて

0

これを試すことができます。あなたは条件が条件としてエイリアスを使用する場所のエイリアスを使用することはできません

SELECT p.ID, p.post_title, 
    MAX(CASE WHEN pm1.meta_key = '_sku' then pm1.meta_value ELSE NULL END) as sku 
    FROM wp_posts p LEFT JOIN wp_postmeta pm1 ON (pm1.post_id = p.ID)     
    WHERE p.post_type in('product') AND p.post_status = 'publish' AND post_id=ID 
    GROUP BY p.ID 
+0

ありがとうshitalを完了するために、あまりにも多くの時間がかかるが、私はあなたが最大 –

+0

のアクション –

+0

MAXを(使用する理由underatandすることはできませんよ)CASE式によって返される値の。 文字列で、MAXは照合順序で最高の値を見つけます。 –

0

あなたが句を持つにそれを使用する必要があります。

SELECT ID,post_title,post_type, (select meta_value from wp_postmeta where 
meta_key='_sku' and post_id=ID) as sku FROM wp_posts,wp_postmeta where 
post_type='product' and post_status='publish' group by ID Having (post_title 
LIKE '%WS1006%' OR sku LIKE '%WS1006%' OR ID LIKE '%WS1006%') 

これは動作します。