php - MySql WHERE 子句是否有通配符?

标签 php mysql pdo

以下通过 PHP 的 MySql SELECT 成功返回包含由变量 $my_color 指定的颜色的行。

$my_color = "red";
$a = $pdo->prepare("SELECT * FROM my_table WHERE color=:color");
$a->bindParam('color', $my_color);
$a->execute();
$data = fetchAll(PDO::FETCH_ASSOC);

我还想执行不依赖于特定颜色的搜索。我可以使用 if-then block 来执行此操作以使用不同的 SELECT 模式但是...

问题: MySQL 是否能够将 WHERE 条件设置为转换为“接受任何内容”的内容 (WHERE = *)?

最佳答案

您可以使用 LIKE 子句,输入是通配符,如下所示:

$my_color = "%";
$a = $pdo->prepare("SELECT * FROM my_table WHERE color LIKE :color");
$a->bindParam('color', $my_color);
$a->execute();
$data = fetchAll(PDO::FETCH_ASSOC);

More Info on the LIKE clause

关于php - MySql WHERE 子句是否有通配符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45681789/

相关文章:

php - mysql 服务器在安装迁移期间消失了错误(laravel)

php - 当将 max() 与 mysqli 一起使用时,只有一个字段发生变化

javascript - 可定制的 jquery 警报框的问题

跟随系统的MySQL查询

mysql - UTF-8 仅在 Grails 1.1 数据库表中

mysql - 在mariadb中计算时间时返回null

php - PHP解析/语法错误;以及如何解决它们

php - 使用 DOM 遍历 "body"标签的所有元素

mysql - 与 PDO 和准备好的语句一起使用时如何确定所需的 max_allowed_pa​​cket 大小?

php - PDO准备查询错误: number of bound variables does not match number of tokens