How i can perform request to tarantool like in mysql?

回眸只為那壹抹淺笑 提交于 2019-12-08 01:19:59

问题


I need select from tarantool all datat by two values from one space. How i can perform request to tarantool like in mysql?

select from aaa where a=1a22cadbdb or a=7f626e0123

Now i can make two requests:

box.space.logs:select({'1a22cadbdb'})
box.space.logs:select({'7f626e0123'})

but i don't know how to merge result into one ;(


回答1:


Following code merge field[0] to lua table

a = box.space.logs:select({'1a22cadbdb'})
b = box.space.logs:select({'7f626e0123'})
c = { field_1 = a[0], field_2 = b[0] }

The select return tuple or tuples so you can extract value via [].

More details about select: http://tarantool.org/doc/book/box/box_index.html?highlight=select#lua-function.index_object.select

More details about tuple: http://tarantool.org/doc/book/box/box_tuple.html?highlight=tuple#lua-module.box.tuple




回答2:


Nowadays Tarantool allows you to retrieve via SQL, for example box.execute([[select from "aaa" where "a"='1a22cadbdb' or "a"='7f626e0123';]]). You have to add the field names and types of aaa before doing this, with the format() function.




回答3:


For me this work fine, but need make check for return from first select:

local res = {}
for k, v in pairs (box.space.email:select({email})[1]) do
    if type(v) == 'string' then
        table.insert(res, box.space.logs:select({v})[1])
    end
end


来源:https://stackoverflow.com/questions/36177960/how-i-can-perform-request-to-tarantool-like-in-mysql

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!