P Clément Lassieur ezt írta (időpont: 2018. júl. 29., V 14:01): > Danny Milosavljevic writes: > > > Hi Tatiana, > > > > On Sun, 8 Jul 2018 21:48:32 +0200 > > Tatiana Sholokhova wrote: > > > >> Do you have ideas on how to > >> implement tuple comparison and other routines in SQL and guile in a > >> convenient and flexible way? > > > > sqlite3 supports row values, so the comparison can be > > written like this: > > > > select * from foo where (a,b,c) = (2,'foo',3); > > > > It even supports NULLs for wildcards, though it's a little more > complicated: > > > > select * from foo where coalesce((a,b,c) = (2,NULL,3), 1) = 1; > > > > The sqlite C interface doesn't support parameter bindings for the entire > > row, though, so you'd have to specify 3 values. > > > > This works: > > > > (sqlite-exec db "select * from foo where (a,b,c) = (" 2 "," "foo" "," > 3 ");") > > > > but this doesn't work, unfortunately: > > > > (sqlite-exec db "select * from foo where (a,b,c) = " '(2 "foo" 3) ";") > > > > See also https://www.sqlite.org/rowvalue.html > > With the '<' operator, it doesn't give the results we are looking for, I > think. > > For example: > > select (0,1) < (1,0); -- returns 1 > select (0,0) < (0,1); -- returns 1 > This is working as expected. Actually this: (a,b)<(c,d) is a shortcut for a How do we use it? Why this is the expected result? > I think we should use: > > select (0 < 1) and (1 < 0); -- returns 0 > select (0 < 0) and (0 < 1); -- returns 0 > Could you please clarify which numbers are the placeholders for which quantities? > > instead, for the pagination borders code. >