我有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."' )
我不希望多个查询我想在单个查询中执行它是否可能???
答案 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')`