Add QuerySelect::columns
method (#1264)
This commit is contained in:
parent
f45f487105
commit
ccb8818365
@ -97,6 +97,72 @@ pub trait QuerySelect: Sized {
|
|||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Select columns
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// use sea_orm::{entity::*, query::*, tests_cfg::cake, DbBackend};
|
||||||
|
///
|
||||||
|
/// assert_eq!(
|
||||||
|
/// cake::Entity::find()
|
||||||
|
/// .select_only()
|
||||||
|
/// .columns([cake::Column::Id, cake::Column::Name])
|
||||||
|
/// .build(DbBackend::Postgres)
|
||||||
|
/// .to_string(),
|
||||||
|
/// r#"SELECT "cake"."id", "cake"."name" FROM "cake""#
|
||||||
|
/// );
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// Conditionally select all columns expect a specific column
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// use sea_orm::{entity::*, query::*, tests_cfg::cake, DbBackend};
|
||||||
|
///
|
||||||
|
/// assert_eq!(
|
||||||
|
/// cake::Entity::find()
|
||||||
|
/// .select_only()
|
||||||
|
/// .columns(cake::Column::iter().filter(|col| match col {
|
||||||
|
/// cake::Column::Id => false,
|
||||||
|
/// _ => true,
|
||||||
|
/// }))
|
||||||
|
/// .build(DbBackend::Postgres)
|
||||||
|
/// .to_string(),
|
||||||
|
/// r#"SELECT "cake"."name" FROM "cake""#
|
||||||
|
/// );
|
||||||
|
/// ```
|
||||||
|
///
|
||||||
|
/// Enum column will be casted into text (PostgreSQL only)
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// use sea_orm::{entity::*, query::*, tests_cfg::lunch_set, DbBackend};
|
||||||
|
///
|
||||||
|
/// assert_eq!(
|
||||||
|
/// lunch_set::Entity::find()
|
||||||
|
/// .select_only()
|
||||||
|
/// .columns([lunch_set::Column::Name, lunch_set::Column::Tea])
|
||||||
|
/// .build(DbBackend::Postgres)
|
||||||
|
/// .to_string(),
|
||||||
|
/// r#"SELECT "lunch_set"."name", CAST("lunch_set"."tea" AS text) FROM "lunch_set""#
|
||||||
|
/// );
|
||||||
|
/// assert_eq!(
|
||||||
|
/// lunch_set::Entity::find()
|
||||||
|
/// .select_only()
|
||||||
|
/// .columns([lunch_set::Column::Name, lunch_set::Column::Tea])
|
||||||
|
/// .build(DbBackend::MySql)
|
||||||
|
/// .to_string(),
|
||||||
|
/// r#"SELECT `lunch_set`.`name`, `lunch_set`.`tea` FROM `lunch_set`"#
|
||||||
|
/// );
|
||||||
|
/// ```
|
||||||
|
fn columns<C, I>(mut self, cols: I) -> Self
|
||||||
|
where
|
||||||
|
C: ColumnTrait,
|
||||||
|
I: IntoIterator<Item = C>,
|
||||||
|
{
|
||||||
|
for col in cols.into_iter() {
|
||||||
|
self = self.column(col);
|
||||||
|
}
|
||||||
|
self
|
||||||
|
}
|
||||||
|
|
||||||
/// Add an offset expression
|
/// Add an offset expression
|
||||||
/// ```
|
/// ```
|
||||||
/// use sea_orm::{entity::*, query::*, tests_cfg::cake, DbBackend};
|
/// use sea_orm::{entity::*, query::*, tests_cfg::cake, DbBackend};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user