meta_queryを使った絞り込みについて
-
いつもお世話になっております。
今回は、meta_queryについて、ご質問がございます。
meta_queryの絞り込み条件にて、valueの値は配列で挿入することが可能だとしりました。
配列で指定する場合は、compareを’IN’に設定すると思われますが、
自分が予想していた動きとは微妙に違ったので、ご質問させてください。疑問とは、compareの’LIKE’と’IN’の違いは、
‘LIKE’は値で指定した文字列に一致する。
‘IN’は値(配列)で指定した何れかに一致する。
と調べた所わかりました。ただ、’LIKE’は曖昧検索で’IN’は完全一致の様な動作に思えます。
■記事条件
1記事目 登録Name 山田
2記事目 登録Name 太郎
3記事目 登録Name 山田太郎■例(LIKEの場合) カスタムフィールド名:name 'meta_query' => array( array( 'key' => 'name', 'value' => '山田', 'compare' => 'LIKE' ) )
↓絞り込み結果↓
1記事目 山田
3記事目 山田太郎`■例(INの場合) $data = ["山田","太郎"] 'meta_query' => array( array( 'key' => 'name', 'value' => $data, 'compare' => 'IN' ) )
↓絞り込み結果↓
1件目 山田
2件目 太郎■知りたいこと
‘LIKE’の場合は、3記事目の山田太郎も引掛っているものに対して
‘IN’の場合は、3記事目の山田太郎が引っかかりませんでした。'value' => array (size=2) 0 => string '山田' (length=6) 1 => string '太郎' (length=6)
配列もちゃんとできているようで、なぜこの様なバラバラな結果になってしまうのでしょうか?
‘LIKE’は曖昧検索で、’IN’は完全一致検索なのでしょうか。また、’IN’を使った場合の曖昧検索は可能でしょうか。
ご教授いただけたら幸いです。
4件の返信を表示中 - 1 - 4件目 (全4件中)
4件の返信を表示中 - 1 - 4件目 (全4件中)
- トピック「meta_queryを使った絞り込みについて」には新たに返信することはできません。