如何获取包含搜索项的数据

时间:2012-07-22 05:58:09

标签: php mysql select

我尝试了以下代码来获取包含搜索项的数据。

$data = mysql_query("
            SELECT * FROM product_table
            WHERE product_name LIKE '%$no3%'
            ORDER BY autoid limit $no2,20"
        ) or die(mysql_error());

如果我尝试kids它的作品,但尝试Kids Ski对我不起作用。数据库中的条目为Manbi Kids Carve Ski Glove

2 个答案:

答案 0 :(得分:1)

它不起作用,因为你的价值不像“儿童滑雪”,而是它分别包含两个单词..

你需要看看RLIKE(即正则表达式)

http://dev.mysql.com/doc/refman/5.0/en/regexp.html#operator_regexp

看看这个答案..这是类似的问题... https://stackoverflow.com/a/9425088/1114536

答案 1 :(得分:0)

你可以explode你的病情并分别检查每个单词:

$no3 = explode(' ', $no3);
$w = array();
foreach ($no3 as $v) $w[] = "product_name LIKE '%$v%'";
$no3 = implode(' AND ', $w);
$data = mysql_query("
        SELECT * FROM product_table
        WHERE $no3
        ORDER BY autoid limit $no2,20"
    ) or die(mysql_error());

如果您希望查询返回结果,如果匹配的任何匹配,而不是所有,请更改以下行:

$no3 = implode(' OR ', $w);