【问题标题】:IN with multiple value具有多个值的 IN
【发布时间】:2019-06-13 10:24:47
【问题描述】:

我想从数据库字段中搜索多个值。

以下是我的查询。

例如

_$Shape = Makeable2,Clivage Brn_ ;
_$Color = GHI,JKL_

SELECT * FROM inventory WHERE Shape IN ($Shape) OR Color IN ($Color)

【问题讨论】:

  • 您不仅对 SQL 注入持开放态度并且应该使用参数化的预处理语句,而且您还需要实际向我们描述您的问题。发生什么了?预期的结果是什么等等。您还应该向我们展示所有相关代码。不只是点点滴滴。
  • 我正在使用 MySQL 数据库搜索数据,所以我尝试搜索不正确
  • 这并没有澄清任何事情。请阅读How to create a Minimal, Complete, and Verifiable example
  • 不要将多个值放入单个标量变量中。如果值相关或使用不同的变量,请使用数组。一旦你解决了这个问题,就可以使用 IN 对准备好的语句和绑定参数进行更多研究。
  • 给定的查询有什么问题?

标签: php mysql arrays search implode


【解决方案1】:

我写了我的答案,我看到你现在编辑了帖子,仍然会发布我写的内容。

不确定你到底想做什么。但这里有一个我认为你希望实现的例子。假设您的数组中的所有值都已清理...此查询将起作用。 正如其他人之前所说,您需要创建一个包含您想要搜索的所有值的数组。根据您的需要进行调整。

$ArrayA = array("round", "circle", "something");
$ArrayB = array("red" , "green");

$sql = "SELECT * FROM inventory WHERE Shape IN ('".implode("','",$ArrayA)."') OR Color IN ('".implode("','",$ArrayB)."')";

数据库布局示例;

id  Shape      Color
1   round      red
2   round      blue
3   square     red
4   square     green
5   circle     blue
6   circle     red
7   circle     green
8   something  blue
9   something  green

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 2019-12-29
    • 2015-01-22
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    • 2021-02-11
    相关资源
    最近更新 更多