Skip to content

Query-Statements

The table query will become simpler and more efficiency by using the sql-like statements as a paramter in base.filter() function. In different column types, there are a little differences in the query method and the format of input statement.

Operators of query method

  • greater-less query: >, >, =, \<, \<=
  • equal-unequal query: =, \<>
  • computation: +, -, *, /, ^, %

Overview

Here is an example based on the code queryset = base.filter("Table1", "age>18")

  • age: column name
  • >: operator
  • 18: parameter
Data structure Column type Format of greater-less query Format of equal-unequal query computation
String Text, Long Text, URL,Email, Single Select Unsupported String Unsupported
List Multiple Select Unsupported String Unsupported
Number Number int, float int, float, and empty string "" Supported
Date Date, Created time, Last modified time Patterns: YYYY-MM-DD, YYYY-MM-DD hh:mm, YYYY-MM-DD hh:mm:ss Same patterns as greater-less query Unsupported
Boolean Checkbox Unsupported true, false and empty string "", (case-insensitive) Unsupported

Examples

String-based Column

  • Column types include Text, Long Text, URL, Email, Checkbox.
# 1. equal-unequal query
base.filter('Table1', 'view_name', "column_name=hello world")
base.filter('Table1', 'view_name', "column_name!=''")

List-based Column

  • Column types include Multiple Select
# equal-unequal query
base.filter('Table1','view_name', "column_name=A and column_name=B") # Find the rows which contains both 'A' and 'B'

Number-based Column

  • Column types include Number
# 1. greater-less query
base.filter('Table1', 'view_name', "column_name>18")
base.filter('Table1', 'view_name', "column_name>-10 and column_name<=0")

# 2. equal-unequal query
base.filter('Table1', 'view_name',"column_name<>20")
base.filter('Table1', 'view_name', "column_name=0")
base.filter('Table1', 'view_name',"column_name=''")
  • Computation
base.filter('Table1', 'view_name', "column_name+3>18")
base.filter('Table1', 'view_name', "column_name*2=18")
base.filter('Table1', 'view_name', "column_name-2=18")
base.filter('Table1', 'view_name', "column_name/2=18")
base.filter('Table1', 'view_name', "column_name^2=18")
base.filter('Table1', 'view_name', "column_name%2=1")

Date-based Column

  • Column types include Date, Created time, Last modified time
# 1. greater-less query
base.filter('Table1', 'view_name', "column_name>'2020-1-30'")
base.filter('Table1', 'view_name', "column_name>='2019-1-1 5:30' and column_name<='2019-5-1 6:00'")

# 2. equal-unequal query
base.filter('Table1', 'view_name', "column_name='2020-1-1 10:59:59'")
base.filter('Table1', 'view_name', "column_name!=''")

Note that please use the quotes "" when making the date-time query

Boolean-based Column

  • Column types include Checkbox
# equal-unequal query
base.filter('Table1', 'view_name','column_name=False') # Same as base.filter('Table1', "column_name=''")
base.filter('Table1', 'view_name', "column_name=True")