-1

我有test一张桌子

在此处输入图像描述

这是我的表,我正在比较字符串并entity_id从此表中获取

我对一个值搜索的 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

正如我所说,我在想的是创建一个关键字数组,看看哪个关键字符合条件,然后显示所有结果。

$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 回答
0

您需要为值使用引号

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