搜索查询是:
“product1 prod2 prod4”
我需要制作mysql
SELECT *
FROM tableprod
WHERE (prod LIKE '%product1%'
AND prod LIKE '%prod2%'
AND prod LIKE '%prod4%')
使用mysql_real_escape_string作为输入查询......
答案 0 :(得分:8)
简单的字符串操作:
$terms = explode(' ', $search);
$bits = array();
foreach ($terms as $term) {
$bits[] = "prod LIKE '%".mysql_real_escape_string($term)."%'";
}
$query = "SELECT * FROM tableprod WHERE (".implode(' AND ', $bits).")";
答案 1 :(得分:1)
如果你能满足这些限制,你最好只使用一个FULLTEXT索引,这样可以省去拆分字符串的麻烦,而且你还可以获得使用基本功能的好处。搜索的布尔运算符(和/或/不)
答案 2 :(得分:1)
没有循环(我总是试图避免循环):
$str = "product1 prod2 prod4";
$sql = "select * from tableprod where (prod like '%" . str_replace( ' ', '%\' AND prod LIKE \'%', $str ) . '%\')';
如果你可能在两个项目之间有多个空格,请使用preg_replace