0

我正在使用 Medoo MySQL 框架,但在 WHERE 语句中使用 IN 时遇到了这个问题:

$test = '1,2,3,4';

$count = $database->count("products", [
    "AND" => [
        "category_id" => $category['id'],
        "id" => [$test]
    ]
]);

计数结果应该是 4,但我得到 1。但是:

$count = $database->count("products", [
    "AND" => [
        "category_id" => $category['id'],
        "id" => [1,2,3,4]
    ]
]);

给了我 4 的正确结果。有什么想法吗?提前致谢!

4

3 回答 3

1

尝试这个...

$test = array(1,2,3,4);

$count = $database->count("products", [
    "AND" => [
        "category_id" => $category['id'],
        "id" => $test // variable without []
    ]
]);
于 2016-07-25T15:16:35.170 回答
0

以下解决方案已在此处发布: https ://github.com/catfan/Medoo/issues/637

$values = '2,123,234,54';

$database->select("account", "user_name", [
    "OR" => [
        "user_id" => explode(',',$values)
    ]
]);
于 2017-10-04T07:04:43.317 回答
0

$test = '1,2,3,4';是一个字符串。要将其转换为数组,您需要使用:

$test = explode(',', '1,2,3,4');

$count = $database->count("products", [
    "AND" => [
        "category_id" => $category['id'],
        "id" => $test
    ]
]);
于 2017-09-17T10:07:22.680 回答