Select 查询

select()用于对表格或视图执行SELECT查询。

  • 默认情况下,Supabase项目将返回最多1,000行。这个设置可以在项目API设置中更改。建议将其保持较低,以限制意外或恶意请求的有效负载大小。您可以使用range()查询来分页处理数据。
  • select()可以与过滤器Filter组合使用
  • select()可以与修改器Modifier组合使用
  • 如果您正在使用Supabase平台,apikey是一个保留关键字,应避免将其作为列名

案例教程

案例1 (获取您的数据)#

1                                                                              
2final data = await supabase
3  .from('cities')
4  .select('name');

案例2 (选择特定的列)#

1                                                                              
2final data = await supabase
3  .from('countries')
4  .select('''
5    name,
6    cities (
7      name
8    )
9  ''');

案例3 (查询外键表)#

1                                                                              
2final data = await supabase
3  .from('countries')
4  .select('''
5    name,
6    cities (
7      name
8    )
9  ''');

案例4 (多次查询同一个外键表)#

1                                                                              
2final data = await supabase
3  .from('messages')
4  .select('*, users!inner(*)')
5  .eq('users.username', 'Jane');

案例5 (使用内连接进行筛选)#

1                                                                              
2final data = await supabase
3  .from('messages')
4  .select('*, users!inner(*)')
5  .eq('users.username', 'Jane');

案例6 (使用计数选项进行查询)#

1                                                                              
2final res = await supabase.from('cities').select(
3      'name',
4      const FetchOptions(
5        count: CountOption.exact,
6      ),
7    );
8
9final count = res.count;

案例7 (查询JSON数据)#

1                                                                              
2final data = await supabase
3  .from('users')
4  .select('''
5    id, name,
6    address->street
7  ''')
8  .eq('address->postcode', 90210);

案例8 (以CSV格式返回数据)#

1                                                                              
2final data = await supabase
3  .from('users')
4  .select()
5  .csv();