2017-01-30 8 views
0

$friend_array変数のユーザー名を含む行をデータベースから検索するにはMySQLクエリが必要です。例えば

変数の一部を含むデータベースから行を選択

これがそうであった場合、:

$friend_array = "ksk,google,bob,steve,dunno,anotheruser"; 

と行はユーザ名がbobある「投稿」のデータベースにあった、そして私は、クエリがこれを選択するとよいでしょう。

フレンドアレイからユーザーを含むすべての行を選択することもできます。たとえば、同じアレイのユーザーを含む「投稿」データベースに行がある場合(たとえば、kskと1行、 steve)、それらを両方のクエリで選択したいと思います。

ありがとうございます。

+2

は、より多くのカンマ区切りリストのように、配列のようには見えません 'IN'句 – Antony

+0

ウム' $のfriend_array'を見てください。 – RiggsFolly

+0

$ sql = "select * from database from username IN($ friend_array)"; –

答えて

0

好きです。

レッツ・コード:

<?php 
    /* if $friend_array is a string starts from here*/ 
    $friend_array = "ksk,google,bob,steve,dunno,anotheruser"; // your string 
    $friend_array = explode(',', $friend_array); // transform it to array 

    /* if $friend_array is an array starts from here */ 
    //Now prepare a String for SQL IN operator 
    $friend_array = implode(', ',array_map(function($a){return "'" . $a . "'";}, $friend_array)); 

    //the SQL 
    $sql = "select * from Posts where user_name in ($friend_array)"; 
?> 
+0

」私の答えをコピーする理由は何ですか? :) –

+0

それはコピーではなく、より冗長なバージョンです;) –

+0

ok :)私はそれがコピーだと思った;)申し訳ありません:) –

0

WHERE INステートメントを使用します。

SELECT * 
FROM Posts 
WHERE user_name IN ("ksk", "google", "bob", "steve", "dunno", "anotheruser"); 
+0

ksk、google、bob、steve、dunnoを変換する方法をOPに伝えると便利でしょう、 "google"、 "bob"、 "steve"、 "dunno"、 "anotheruser" " – RiggsFolly

0

あなたの結果のための句での使用:

Select * from `tableName` 
Where userName IN ("ksk","google","bob","steve",...) 
+0

ksk、google、bob、 「google」「bob」「steve」「dunno」「anotheruser」「 – RiggsFolly

0

$friend_arrayはあなたの例では、文字列であるという事実から始まるこの

"SELECT * 
FROM Posts 
WHERE user_name IN (".implode(',', array_map(function ($value) { return "'".$value."'"; }, explode(',', $friend_array))).");" 
関連する問題