在Mysql中将Column值与多个值进行比较

时间:2013-04-13 08:46:11

标签: php mysql

我有test

enter image description here

这是我的表我正在比较字符串并从此表中获取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."' )

我不希望多个查询我想在单个查询中执行它是否可能???

2 个答案:

答案 0 :(得分:0)

你需要使用值的引号

SELECT entity_id FROM test WHERE value IN ('one','two','three')

答案 1 :(得分: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')`