0

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

$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.

4

2 回答 2

1

它不起作用,因为您的值不像“Kids Ski”,而是分别包含两个词..

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

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

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

于 2012-07-22T06:11:42.623 回答
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());

如果您希望查询在任何给定单词匹配时返回结果,而不是all,请更改以下行:

$no3 = implode(' OR ', $w);
于 2012-12-21T20:55:43.077 回答