2

我有一个名为 item_name 的列的数据库。我正在尝试使用 LIKE 子句使用 item_name 列中的关键字从数据库中提取数据,但没有得到任何返回。我下面的代码有问题吗?我尝试了逗号和 AND 而不是 OR 但仍然没有结果。

$sql = mysql_query("SELECT category, item_name, link, price, pic, retailer FROM products WHERE item_name LIKE ('%gtx%') OR ('%video%') OR ('%sound%') ORDER BY id DESC");

$query = ($sql) or die (mysql_error());

while ($result = mysql_fetch_array($query)) { 
4

3 回答 3

2

您需要LIKE在每个之后指定OR

SELECT category, item_name, link, price, pic, retailer 
FROM products 
WHERE item_name LIKE ('%gtx%') 
    OR item_name LIKE ('%video%') 
    OR item_name LIKE ('%sound%') 
ORDER BY id DESC
于 2012-05-01T18:39:03.353 回答
0

尝试使用:
WHERE(item_name '%gtx%' OR item_name LIKE '%video%' OR item_name LIKE '%sound%') 。我认为这会运行。您是否直接在mysql界面中测试了您的查询?

于 2012-05-01T18:38:25.957 回答
0

您需要LIKE在 each 之后添加OR,因此 SQL setence 将是这样的:

SELECT category, item_name, link, price, pic, retailer FROM products 
WHERE item_name LIKE ('%gtx%') 
      OR item_name LIKE ('%video%') 
      OR item_name LIKE ('%sound%') 
ORDER BY id DESC

因为在旧句子中,没有 LIKE 数据库不会像逻辑值那样理解 ('%video%') 术语。

于 2012-05-01T18:40:02.447 回答