1

タグIDが次のように保存されているユーザーテーブルからデータを取得したい:

userid  tagid 
5036    |4815|324|                
1396    |1393|4567|                   
2676    |2669|345|2345|

Array ( [0] => 4815 [1] => 4567 ) のような tagid 配列があります。

のような条件で mysql を使用してデータをフェッチする必要があります"select * from user where tagid in ()"。そのための preg_match 関数はありますか?

4

3 に答える 3

1

次のように、配列をループして likes を使用して追加することをお勧めします。

   $tags = array(2,4,6);
   $query = 'select * from user where ';
   foreach($tags as $i=>$tag) {
       if ($i>0) $query.=' or ';  // or and?
       $query.='tagid like "%|'.$tag.'|%"';
   }
于 2013-06-11T15:56:29.813 に答える
0

あなたはそのようにすることができます:

$tagid = array(4815,4567);
$query = "select * from user where tagid regexp '\|("
       . implode("|", $tagid) . ")\|'";

次に、次を取得します。

select * from user where tagid regexp '\|(4812|4567)\|'
于 2013-06-11T15:53:04.637 に答える