-1

私はtestテーブルを持っています

ここに画像の説明を入力

これは私のテーブルです。文字列を比較してentity_id、このテーブルから取得しています

1つの値を検索するための私のSQLクエリはこのようなものです

 Select entity_id From test Where BINARY  value = '".$my_search_list."'

次のような単一の値を検索すると、これは正常に機能しますShirt

複数の値を検索したいのですが、 Root,Appare,hand Bags(作業以上)のようなカンマ区切りの値で試してみると、出力が得られません

私もこれで試しました

Select entity_id From test Where BINARY  value IN ( '".$my_search_list."' )

複数のクエリは必要ありません。単一のクエリで実行したいのですが、可能ですか?

4

2 に答える 2

0

値には引用符を使用する必要があります

SELECT entity_id FROM test WHERE value IN ('one','two','three')
于 2013-04-13T08:50:55.370 に答える
0

私が言ったように考えていたのは、キーワードの配列を作成し、どれが基準に一致するかを確認してから、すべての結果を表示することです。

$search = array('Root','Appare','hand Bags');
$sql = "SELECT `entity_id` FROM `test` WHERE ";
$count = 0;
$search_size = count($search);   

foreach($search as $key)
{
    $count++;
    if($count < $search_size)
    {
        $sql .= "(`value` = '".$key."') or ";
    } 
    else if ($count == $search_size)
    {
        $sql .= "(`value` = '".$key."')";
    }
}

エコー$sqlすると、動作するはずの正しいクエリが表示されます。

SELECT `entity_id` FROM `test` WHERE (`value` = 'Root') or (`value` = 'Appare') or (`value` = 'hand Bags')`
于 2013-04-13T09:20:29.157 に答える