RethinkDB и PHP-RQL Как фильтровать + сопоставлять одновременно

Я очень плохо знаком с PHP-RQL и не могу понять, как сделать простой SQL-запрос, подобный этому (старый метод / база данных):

Способ 1 (вид по умолчанию)

$mysql1 = 'SELECT 'html1' FROM  `paging` WHERE `agency` IN ("USER1", "USER2", "USER3") AND `alias` != \'\' ORDER BY  `id` DESC LIMIT 1000';

Способ 2 если бы был $_GET['search']; настоящее время (поиск пользователя)

$mysql2 = " SELECT "html1" FROM  `paging` WHERE  `private` !=  '1' AND  `alias` LIKE  '%". $search . "%' ORDER BY `id` DESC LIMIT 2000";

Теперь это были почти те же самые элементы, которые я пытался извлечь из MySQL, который мы сейчас используем, но мы хотим перейти на RethinkDB.

Может кто-нибудь объяснить мне, как вы получаете несколько предложений WHERE IN в клиенте PHP-RQL? Это сильно отличается от того, как RethinkDB имеет свои документы на Java.
Я прочитал следующее:

RethinkDB версия До сих пор я собирался вместе (не работает вообще, и мне нужна помощь в понимании фильтра и соответствия).

    $agency = "USER1|USER2|USER3";
$search = (isset($_GET['search']) ? $_GET['search'] : "..");

require_once("include/rdb/rdb.php");
$conn = r\connect('127.0.0.1', 28015, "birms");
$result = r\table('paging')->filter(array(
'agency' => match->$agency,
'alias' => match->$search,
'private' => 'false'))->run($conn);

foreach ($result as $doc) {
print_r($doc[$html_src]);
}

/* I toyed around with single returns, also didnt work....
return $doc('agency')->match($agency);
return $doc('search')->match($search);
return $doc('private')->match('false');

This does work; stock standard with no care for the above SQL
$result = r\table("paging")->orderBy(array('index' => r\desc('js_unique')))->limit(1000)->filter(array('private' => 'false'))->pluck($html_src)->run($conn);
*/

Спасибо.

0

Решение

Итак, используя ->rAnd Я смог решить мой вопрос. Вот код Надеюсь, что некоторые люди могут понять это.

$agency = "USER1|USER2|USER3";
$search = (isset($_GET['search']) ? $_GET['search'] : "..");

require_once("include/rdb/rdb.php");
$conn = r\connect('127.0.0.1', 28015, "database");

$result = r\table("paging")->filter(function($doc){
global $agency;
global $search;
return $doc('agency')->match($agency)
->rAnd($doc('private')->ne('true'))
->rAnd($doc('alias')->match("(?i){$search}"));
})->orderBy(r\desc('js_unique'))->limit(1000)->pluck($html_src)->run($conn);
foreach ($result as $doc) {
print_r($doc[$html_src]);
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]