php - 使用部分匹配的关键字搜索/查询 mysql 数据库

标签 php mysql sql

public function search($search)
{
    global $pdo;
    $query = $pdo->prepare('SELECT * FROM items WHERE item_name = ?');
    $query->bindValue(1, $search);
    $query->execute();
    return $query->fetchAll();
}

如果我调用了那个函数,并且说 $searchcookie

在我的数据库中我有

chocolate chip cookie
oatmeal cookie
cookie 

它只会返回 cookie 那么我该如何修复我的查询,以便它返回所有部分匹配或包含 cookie 的 item_name?谢谢。

最佳答案

为了完整性,或者作为 LIKE 的替代方案,您可以使用 LOCATE()INSTR() :

SELECT * FROM table WHERE LOCATE('cookie', item_name);

注意:如果您对性能感到好奇,这里有一些 old benchmarks .

关于php - 使用部分匹配的关键字搜索/查询 mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17561689/

相关文章:

mysql - 高级 SQL 查询设计

php - 在php中删除确认查看要删除的条目

PHP:使用 LIKE 选择器时防止 SQL 注入(inject)

mysql - 用于向多个用户发送消息的数据库架构

php和mysql的日期时间差

Java JTable 日期格式问题

php - 循环从按关系排序和摸索的整个表中选择一个不同的行

php - 想要通过加入交货来填充销售表中的记录集

php - .htaccess 中的条件 php_flag 语句

MySQL 列类型 "TIMESTAMP"隐式包含 "NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"