Handler Socket запрос по двум индексам

Димон

Новичок
Всем добрый день.

Кто-нибудь реализовывал запрос к мускулу через HS по двум ключам?
Т.е. аналог запроса: SELECT * FROM my_my_table WHERE id = 1 AND name = 'my_name';
 

Димон

Новичок
Разобрался. Для запроса по двум и более ключам надо создать составной индекс.
Не уверен можно ли задать одному условия, как '=', другому как '>='. Для условия по обоим индексам '=' работает верно.

Вот пример, кому пригодится:

my_table:
id | item_id | owner_id |
--------------------------
1 | 100 | 500 |
2 | 100 | 500 |
3 | 101 | 501 |

my_index = key my_index(item_id, owner_id)

php:
$host = 'localhost';
$port = 9998;

$hs = new HandlerSocket($host, $port);

$index_id = 0;
$db_name = 'my_db';
$tbl_name = 'my_table';
$index_name = 'my_index';
$cols = 'id,item_id,owner_id';

if (!$hs->openIndex($index_id, $db_name, $tbl_name, $index_name, $cols))
throw new Exception($hs->getError());

$operate = '=';
$value = array(100, 500);
$limit = 10;
$offset = 0;

$retval = $hs->executeSingle(
$index_id, $operate, $value, $limit, $offset
);
 
Сверху