php - mysql where like and 语句不起作用

标签 php mysql sql-like

我的网站上有一个搜索栏,并构建了一个页面来显示在搜索中的关键字中具有 LIKE 描述和 LIKE 零件名称的零件。

is_sold 将始终为 1 或 0 的整数。

当获准显示在首页、搜索或类别列表中时,part_status 将始终为 1。

这是我的sql语句

$result = mysql_query("
SELECT *
FROM part
WHERE part_name LIKE '%" . $get_search . "%'
  OR part_desc LIKE '%" . $get_search ."%'
  AND is_sold = 0
  AND part_status = 1
ORDER BY id DESC
")

无论是否通过审核,无论是否销售,它都在列出零件。

我遇到的问题是末尾的 AND 我为“is_sold”设置了整数(零件已售出和“part_status”(如果零件已获得管理员批准)。

最佳答案

您正在混合 andor 而没有任何 (),这意味着 MySQL 将应用其内部运算符优先级规则:http://dev.mysql.com/doc/refman/5.0/en/operator-precedence.html

你可能想要:

((part_name LIKE x) OR (part_desc LIKE X)) AND (is_sold = 0) AND (part_status = 1)

请注意 组件周围的额外括号。

关于php - mysql where like and 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26610466/

相关文章:

javascript - AJAX 不从 php 返回结果

php - Laravel 5 找不到 http ://localhost:8000/css/app. css

php - Codeigniter 创建准备好的语句或使用事件记录通过 concat 进行搜索

python - Alembic:包括约束以拒绝带有字符的字符串

php - MySQL LIKE 限制

php - WAMP + PHP CSS Include 不会更新新样式

php - 搜索数组并在找到匹配时返回所有键和值

php - 无法使用我最近在 MySQL 中添加的用户连接到数据库

MySQL - 按月计数(包括丢失的记录)

mysql - Like 中的子查询字段