2016-07-25 17 views
0

私のテーブルでgroup_members_idと呼ばれる列には、10ユーザー中useridが含まれています。 私は、useridが10個のuseridのいずれかと一致すると、その行の詳細をフェッチするMySQLでどのようにクエリを実行できるかを調べようとしています。Mysqlクエリ - 使用方法は?

"SELECT * FROM `table` WHERE `group_members_id`.contains('{$userid}')". 

このコードは機能しません。誰でも助けてくれますか?

+0

可能な重複http://stackoverflow.com/questions/6121630/ mysql-query-where-a-contains-a-or -b – rokas

+0

を分類するだけでは、group_members_id = xyzを持つSQLテーブルからレコードを取得しようとしており、group_members_idフィールドには{1}、{2}、{3}、{4} ...のようなリスト? – user3750649

+0

find_in_setを使用できます。 –

答えて

2

あなたはこの

"SELECT * 
FROM `table` 
WHERE `group_members_id` LIKE '%{$userid}%'" 
1

使用like

"SELECT * FROM table WHERE group_members_id LIKE '%$userid%'"; 
1

まず、常にforegin IDとしてgroup_member_id使用し、int型としてそれを作るように使用し得ることができます。

第2に、整数値を文字列として使用しないでください。

1.)パーセントとともに、LIKE句のキ​​ーワードを使用して次のようにそれはあなたがテーブル内の文字列として整数値を格納している場合は、あなたが使用することができ、その他の並べ替え

第三のような他の機能に役立ちます文字列内の兆し

"SELECT * FROM table WHERE group_members_id LIKE '%$userid%'"; 

2)あなたは、文字列のより複雑な組み合わせを探しているなら、あなたの例では、指定したよりも、あなたが正規表現(正規表現)ができます 多くのためのMySQLのマニュアルを参照してくださいそれらを使用する方法について:http://dev.mysql.com/doc/refman/5.1/en/regexp.html

すべてのユーザーIDを考慮
1

はINT型のものである:

<?php 
//$aUserIds is an array of your User Ids. 
$userIds = implode(",", $aUserIds); 
$sQuery = "SELECT * FROM table WHERE group_members_id IN (" + $uSerIds + ")"; 

代わりに、彼らは文字列型である場合に、使用:

$userIds = implode(",", $aUserIds); 
$sUserIds = ""; 
foreach($userId as $userIds) 
{ 
    $sUserIds += "'" + userId + "'"; 
} 
$sQuery = "SELECT * FROM table WHERE group_members_id IN (" + $sUserIds + ")"; 
関連する問題