Я использую платформу Medoo MySQL, но столкнулся с этой проблемой при использовании IN в выражении WHERE:
$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. Есть идеи? Заранее спасибо!
Попробуй это…
$test = array(1,2,3,4);
$count = $database->count("products", [
"AND" => [
"category_id" => $category['id'],
"id" => $test // variable without []
]
]);
$test = '1,2,3,4';
это строка Чтобы преобразовать его в массив, вам нужно использовать:
$test = explode(',', '1,2,3,4');
$count = $database->count("products", [
"AND" => [
"category_id" => $category['id'],
"id" => $test
]
]);
Следующее решение было размещено здесь:
https://github.com/catfan/Medoo/issues/637
$values = '2,123,234,54';
$database->select("account", "user_name", [
"OR" => [
"user_id" => explode(',',$values)
]
]);