Comments (9)
let req = PageRequest::new(1, 1); //分页请求,页码,条数 let wraper = RB .new_wrapper() .eq("1", 1) .order_by(false, &["create_date"]) .check() .unwrap(); let r: rbatis_core::Result<Page<CyCustomZtzts>> = RB.fetch_page_by_wrapper("", &wraper, &req).await;
生成了sql:
SELECT count(1) FROM cy_custom_ztzts WHERE 1 = $1 ORDER BY create_date DESC
含有ORDER BY 无法正常运行
我试了没问题呀,是否是最新版本
#[async_std::test]
pub async fn test_fetch_page_by_wrapper() {
let mut rb = init_rbatis().await;
//设置 逻辑删除插件
rb.logic_plugin = Some(Box::new(RbatisLogicDeletePlugin::new("delete_flag")));
let w = rb.new_wrapper()
.like("name", "test")
.order_by(false, &["create_time"])
.check().unwrap();
let r: Page<BizActivity> = rb.fetch_page_by_wrapper("", &w, &PageRequest::new(1, 20)).await.unwrap();
println!("{}", serde_json::to_string(&r).unwrap());
}
2020-10-15T12:13:47.924730+08:00 INFO rbatis::rbatis - [rbatis] [] Query ==> SELECT count(1) FROM biz_activity WHERE delete_flag = 0 AND name LIKE ? ORDER BY create_time DESC
2020-10-15T12:13:47.929941+08:00 INFO rbatis::rbatis - [rbatis] [] Args ==> ["%test%"]
2020-10-15T12:14:01.144418+08:00 INFO rbatis::rbatis - [rbatis] [] ReturnRows <== 1
2020-10-15T12:14:01.144496+08:00 INFO rbatis::rbatis - [rbatis] [] Query ==> SELECT id,name,pc_link,h5_link,pc_banner_img,h5_banner_img,sort,status,remark,create_time,version,delete_flag FROM biz_activity WHERE delete_flag = 0 AND name LIKE ? ORDER BY create_time DESC LIMIT 0,20
2020-10-15T12:14:01.144529+08:00 INFO rbatis::rbatis - [rbatis] [] Args ==> ["%test%"]
2020-10-15T12:14:01.149908+08:00 INFO rbatis::rbatis - [rbatis] [] ReturnRows <== 3
{"records":[{"id":"221","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0},{"id":"222","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0},{"id":"223","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0}],"total":3,"pages":1,"size":20,"current":1,"serch_count":true}
from rbatis.
let req = PageRequest::new(1, 1); //分页请求,页码,条数 let wraper = RB .new_wrapper() .eq("1", 1) .order_by(false, &["create_date"]) .check() .unwrap(); let r: rbatis_core::Result<Page<CyCustomZtzts>> = RB.fetch_page_by_wrapper("", &wraper, &req).await;
生成了sql:
SELECT count(1) FROM cy_custom_ztzts WHERE 1 = $1 ORDER BY create_date DESC
含有ORDER BY 无法正常运行
我试了没问题呀,是否是最新版本
#[async_std::test] pub async fn test_fetch_page_by_wrapper() { let mut rb = init_rbatis().await; //设置 逻辑删除插件 rb.logic_plugin = Some(Box::new(RbatisLogicDeletePlugin::new("delete_flag"))); let w = rb.new_wrapper() .like("name", "test") .order_by(false, &["create_time"]) .check().unwrap(); let r: Page<BizActivity> = rb.fetch_page_by_wrapper("", &w, &PageRequest::new(1, 20)).await.unwrap(); println!("{}", serde_json::to_string(&r).unwrap()); } 2020-10-15T12:13:47.924730+08:00 INFO rbatis::rbatis - [rbatis] [] Query ==> SELECT count(1) FROM biz_activity WHERE delete_flag = 0 AND name LIKE ? ORDER BY create_time DESC 2020-10-15T12:13:47.929941+08:00 INFO rbatis::rbatis - [rbatis] [] Args ==> ["%test%"] 2020-10-15T12:14:01.144418+08:00 INFO rbatis::rbatis - [rbatis] [] ReturnRows <== 1 2020-10-15T12:14:01.144496+08:00 INFO rbatis::rbatis - [rbatis] [] Query ==> SELECT id,name,pc_link,h5_link,pc_banner_img,h5_banner_img,sort,status,remark,create_time,version,delete_flag FROM biz_activity WHERE delete_flag = 0 AND name LIKE ? ORDER BY create_time DESC LIMIT 0,20 2020-10-15T12:14:01.144529+08:00 INFO rbatis::rbatis - [rbatis] [] Args ==> ["%test%"] 2020-10-15T12:14:01.149908+08:00 INFO rbatis::rbatis - [rbatis] [] ReturnRows <== 3 {"records":[{"id":"221","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0},{"id":"222","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0},{"id":"223","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0}],"total":3,"pages":1,"size":20,"current":1,"serch_count":true}
忘记说了,MySQL正常,但我用的是PostgreSQL数据库,这种SQL无法执行。
from rbatis.
let req = PageRequest::new(1, 1); //分页请求,页码,条数 let wraper = RB .new_wrapper() .eq("1", 1) .order_by(false, &["create_date"]) .check() .unwrap(); let r: rbatis_core::Result<Page<CyCustomZtzts>> = RB.fetch_page_by_wrapper("", &wraper, &req).await;
生成了sql:
SELECT count(1) FROM cy_custom_ztzts WHERE 1 = $1 ORDER BY create_date DESC
含有ORDER BY 无法正常运行
我试了没问题呀,是否是最新版本
#[async_std::test] pub async fn test_fetch_page_by_wrapper() { let mut rb = init_rbatis().await; //设置 逻辑删除插件 rb.logic_plugin = Some(Box::new(RbatisLogicDeletePlugin::new("delete_flag"))); let w = rb.new_wrapper() .like("name", "test") .order_by(false, &["create_time"]) .check().unwrap(); let r: Page<BizActivity> = rb.fetch_page_by_wrapper("", &w, &PageRequest::new(1, 20)).await.unwrap(); println!("{}", serde_json::to_string(&r).unwrap()); } 2020-10-15T12:13:47.924730+08:00 INFO rbatis::rbatis - [rbatis] [] Query ==> SELECT count(1) FROM biz_activity WHERE delete_flag = 0 AND name LIKE ? ORDER BY create_time DESC 2020-10-15T12:13:47.929941+08:00 INFO rbatis::rbatis - [rbatis] [] Args ==> ["%test%"] 2020-10-15T12:14:01.144418+08:00 INFO rbatis::rbatis - [rbatis] [] ReturnRows <== 1 2020-10-15T12:14:01.144496+08:00 INFO rbatis::rbatis - [rbatis] [] Query ==> SELECT id,name,pc_link,h5_link,pc_banner_img,h5_banner_img,sort,status,remark,create_time,version,delete_flag FROM biz_activity WHERE delete_flag = 0 AND name LIKE ? ORDER BY create_time DESC LIMIT 0,20 2020-10-15T12:14:01.144529+08:00 INFO rbatis::rbatis - [rbatis] [] Args ==> ["%test%"] 2020-10-15T12:14:01.149908+08:00 INFO rbatis::rbatis - [rbatis] [] ReturnRows <== 3 {"records":[{"id":"221","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0},{"id":"222","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0},{"id":"223","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0}],"total":3,"pages":1,"size":20,"current":1,"serch_count":true}忘记说了,MySQL正常,但我用的是PostgreSQL数据库,这种SQL无法执行。
用navcat之类的工具确定一下 ORDER BY 是否不能在pg下执行,如果确定的话,分页插件应该去除统计sql出现的order by 语句
from rbatis.
let req = PageRequest::new(1, 1); //分页请求,页码,条数 let wraper = RB .new_wrapper() .eq("1", 1) .order_by(false, &["create_date"]) .check() .unwrap(); let r: rbatis_core::Result<Page<CyCustomZtzts>> = RB.fetch_page_by_wrapper("", &wraper, &req).await;
生成了sql:
SELECT count(1) FROM cy_custom_ztzts WHERE 1 = $1 ORDER BY create_date DESC
含有ORDER BY 无法正常运行
我试了没问题呀,是否是最新版本
#[async_std::test] pub async fn test_fetch_page_by_wrapper() { let mut rb = init_rbatis().await; //设置 逻辑删除插件 rb.logic_plugin = Some(Box::new(RbatisLogicDeletePlugin::new("delete_flag"))); let w = rb.new_wrapper() .like("name", "test") .order_by(false, &["create_time"]) .check().unwrap(); let r: Page<BizActivity> = rb.fetch_page_by_wrapper("", &w, &PageRequest::new(1, 20)).await.unwrap(); println!("{}", serde_json::to_string(&r).unwrap()); } 2020-10-15T12:13:47.924730+08:00 INFO rbatis::rbatis - [rbatis] [] Query ==> SELECT count(1) FROM biz_activity WHERE delete_flag = 0 AND name LIKE ? ORDER BY create_time DESC 2020-10-15T12:13:47.929941+08:00 INFO rbatis::rbatis - [rbatis] [] Args ==> ["%test%"] 2020-10-15T12:14:01.144418+08:00 INFO rbatis::rbatis - [rbatis] [] ReturnRows <== 1 2020-10-15T12:14:01.144496+08:00 INFO rbatis::rbatis - [rbatis] [] Query ==> SELECT id,name,pc_link,h5_link,pc_banner_img,h5_banner_img,sort,status,remark,create_time,version,delete_flag FROM biz_activity WHERE delete_flag = 0 AND name LIKE ? ORDER BY create_time DESC LIMIT 0,20 2020-10-15T12:14:01.144529+08:00 INFO rbatis::rbatis - [rbatis] [] Args ==> ["%test%"] 2020-10-15T12:14:01.149908+08:00 INFO rbatis::rbatis - [rbatis] [] ReturnRows <== 3 {"records":[{"id":"221","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0},{"id":"222","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0},{"id":"223","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0}],"total":3,"pages":1,"size":20,"current":1,"serch_count":true}忘记说了,MySQL正常,但我用的是PostgreSQL数据库,这种SQL无法执行。
用navcat之类的工具确定一下 ORDER BY 是否不能在pg下执行,如果确定的话,分页插件应该去除统计sql出现的order by 语句
确认过了,不能运行。
from rbatis.
let req = PageRequest::new(1, 1); //分页请求,页码,条数 let wraper = RB .new_wrapper() .eq("1", 1) .order_by(false, &["create_date"]) .check() .unwrap(); let r: rbatis_core::Result<Page<CyCustomZtzts>> = RB.fetch_page_by_wrapper("", &wraper, &req).await;
生成了sql:
SELECT count(1) FROM cy_custom_ztzts WHERE 1 = $1 ORDER BY create_date DESC
含有ORDER BY 无法正常运行
我试了没问题呀,是否是最新版本
#[async_std::test] pub async fn test_fetch_page_by_wrapper() { let mut rb = init_rbatis().await; //设置 逻辑删除插件 rb.logic_plugin = Some(Box::new(RbatisLogicDeletePlugin::new("delete_flag"))); let w = rb.new_wrapper() .like("name", "test") .order_by(false, &["create_time"]) .check().unwrap(); let r: Page<BizActivity> = rb.fetch_page_by_wrapper("", &w, &PageRequest::new(1, 20)).await.unwrap(); println!("{}", serde_json::to_string(&r).unwrap()); } 2020-10-15T12:13:47.924730+08:00 INFO rbatis::rbatis - [rbatis] [] Query ==> SELECT count(1) FROM biz_activity WHERE delete_flag = 0 AND name LIKE ? ORDER BY create_time DESC 2020-10-15T12:13:47.929941+08:00 INFO rbatis::rbatis - [rbatis] [] Args ==> ["%test%"] 2020-10-15T12:14:01.144418+08:00 INFO rbatis::rbatis - [rbatis] [] ReturnRows <== 1 2020-10-15T12:14:01.144496+08:00 INFO rbatis::rbatis - [rbatis] [] Query ==> SELECT id,name,pc_link,h5_link,pc_banner_img,h5_banner_img,sort,status,remark,create_time,version,delete_flag FROM biz_activity WHERE delete_flag = 0 AND name LIKE ? ORDER BY create_time DESC LIMIT 0,20 2020-10-15T12:14:01.144529+08:00 INFO rbatis::rbatis - [rbatis] [] Args ==> ["%test%"] 2020-10-15T12:14:01.149908+08:00 INFO rbatis::rbatis - [rbatis] [] ReturnRows <== 3 {"records":[{"id":"221","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0},{"id":"222","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0},{"id":"223","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0}],"total":3,"pages":1,"size":20,"current":1,"serch_count":true}忘记说了,MySQL正常,但我用的是PostgreSQL数据库,这种SQL无法执行。
用navcat之类的工具确定一下 ORDER BY 是否不能在pg下执行,如果确定的话,分页插件应该去除统计sql出现的order by 语句
确认过了,不能运行。
确认一下,去除count中的order by 的sql 是否能正常统计? 还有你的报错信息是什么。
我感觉 是不是类型转换引起的,order_by 改成 .order_by(false, &["create_time::timestamp"])
from rbatis.
let req = PageRequest::new(1, 1); //分页请求,页码,条数 let wraper = RB .new_wrapper() .eq("1", 1) .order_by(false, &["create_date"]) .check() .unwrap(); let r: rbatis_core::Result<Page<CyCustomZtzts>> = RB.fetch_page_by_wrapper("", &wraper, &req).await;
生成了sql:
SELECT count(1) FROM cy_custom_ztzts WHERE 1 = $1 ORDER BY create_date DESC
含有ORDER BY 无法正常运行
我试了没问题呀,是否是最新版本
#[async_std::test] pub async fn test_fetch_page_by_wrapper() { let mut rb = init_rbatis().await; //设置 逻辑删除插件 rb.logic_plugin = Some(Box::new(RbatisLogicDeletePlugin::new("delete_flag"))); let w = rb.new_wrapper() .like("name", "test") .order_by(false, &["create_time"]) .check().unwrap(); let r: Page<BizActivity> = rb.fetch_page_by_wrapper("", &w, &PageRequest::new(1, 20)).await.unwrap(); println!("{}", serde_json::to_string(&r).unwrap()); } 2020-10-15T12:13:47.924730+08:00 INFO rbatis::rbatis - [rbatis] [] Query ==> SELECT count(1) FROM biz_activity WHERE delete_flag = 0 AND name LIKE ? ORDER BY create_time DESC 2020-10-15T12:13:47.929941+08:00 INFO rbatis::rbatis - [rbatis] [] Args ==> ["%test%"] 2020-10-15T12:14:01.144418+08:00 INFO rbatis::rbatis - [rbatis] [] ReturnRows <== 1 2020-10-15T12:14:01.144496+08:00 INFO rbatis::rbatis - [rbatis] [] Query ==> SELECT id,name,pc_link,h5_link,pc_banner_img,h5_banner_img,sort,status,remark,create_time,version,delete_flag FROM biz_activity WHERE delete_flag = 0 AND name LIKE ? ORDER BY create_time DESC LIMIT 0,20 2020-10-15T12:14:01.144529+08:00 INFO rbatis::rbatis - [rbatis] [] Args ==> ["%test%"] 2020-10-15T12:14:01.149908+08:00 INFO rbatis::rbatis - [rbatis] [] ReturnRows <== 3 {"records":[{"id":"221","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0},{"id":"222","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0},{"id":"223","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0}],"total":3,"pages":1,"size":20,"current":1,"serch_count":true}忘记说了,MySQL正常,但我用的是PostgreSQL数据库,这种SQL无法执行。
用navcat之类的工具确定一下 ORDER BY 是否不能在pg下执行,如果确定的话,分页插件应该去除统计sql出现的order by 语句
确认过了,不能运行。
确认一下,去除count中的order by 的sql 是否能正常统计? 还有你的报错信息是什么。
我感觉 是不是类型转换引起的,order_by 改成 .order_by(false, &["create_time::timestamp"])
【出错】含有 order_by 结果如下:
10-15 15:15:37.833405500 [rbatis::rbatis] INFO:[271] [rbatis] [] Query ==> SELECT count(1) FROM cy_custom_ztzts WHERE 1 = $1 ORDER BY create_date DESC
10-15 15:15:37.847567600 [rbatis::rbatis] INFO:[272] [rbatis] [] Args ==> [1]
10-15 15:15:38.019037600 [] INFO:[34] [F]===> Err(Database(PgError(Response { severity: Error, code: "42803", message: "column \"cy_custom_ztzts.create_date\" must appear in the GROUP BY clause or be used in an aggregate f
unction", detail: None, hint: None, position: Some(60), internal_position: None, internal_query: None, where_: None, schema: None, table: None, column: None, data_type: None, constraint: None, file: Some("parse_agg.c"), line: Some(1409), routine: Some("check_ungrou
ped_columns_walker") })))
【正确】没有order_by 结果如下:
10-15 15:19:27.325783100 [rbatis::rbatis] INFO:[271] [rbatis] [] Query ==> SELECT count(1) FROM cy_custom_ztzts WHERE 1 = $1
10-15 15:19:27.327838000 [rbatis::rbatis] INFO:[272] [rbatis] [] Args ==> [1]
10-15 15:19:27.531099400 [rbatis::rbatis] INFO:[294] [rbatis] [] ReturnRows <== 1
【出错】order_by 改成 .order_by(false, &["create_date::timestamp"]) 结果如下:
10-15 15:24:52.236024500 [rbatis::rbatis] INFO:[271] [rbatis] [] Query ==> SELECT count(1) FROM cy_custom_ztzts WHERE 1 = $1 ORDER BY create_date::timestamp DESC
10-15 15:24:52.238953900 [rbatis::rbatis] INFO:[272] [rbatis] [] Args ==> [1]
10-15 15:24:52.422045700 [] INFO:[35] [F]===> Err(Database(PgError(Response { severity: Error, code: "42803", message: "column \"cy_custom_ztzts.create_date\" must appear in the GROUP BY clause or be used in an aggregate f
unction", detail: None, hint: None, position: Some(60), internal_position: None, internal_query: None, where_: None, schema: None, table: None, column: None, data_type: None, constraint: None, file: Some("parse_agg.c"), line: Some(1409), routine: Some("check_ungrou
ped_columns_walker") })))
from rbatis.
let req = PageRequest::new(1, 1); //分页请求,页码,条数 let wraper = RB .new_wrapper() .eq("1", 1) .order_by(false, &["create_date"]) .check() .unwrap(); let r: rbatis_core::Result<Page<CyCustomZtzts>> = RB.fetch_page_by_wrapper("", &wraper, &req).await;
生成了sql:
SELECT count(1) FROM cy_custom_ztzts WHERE 1 = $1 ORDER BY create_date DESC
含有ORDER BY 无法正常运行
我试了没问题呀,是否是最新版本
#[async_std::test] pub async fn test_fetch_page_by_wrapper() { let mut rb = init_rbatis().await; //设置 逻辑删除插件 rb.logic_plugin = Some(Box::new(RbatisLogicDeletePlugin::new("delete_flag"))); let w = rb.new_wrapper() .like("name", "test") .order_by(false, &["create_time"]) .check().unwrap(); let r: Page<BizActivity> = rb.fetch_page_by_wrapper("", &w, &PageRequest::new(1, 20)).await.unwrap(); println!("{}", serde_json::to_string(&r).unwrap()); } 2020-10-15T12:13:47.924730+08:00 INFO rbatis::rbatis - [rbatis] [] Query ==> SELECT count(1) FROM biz_activity WHERE delete_flag = 0 AND name LIKE ? ORDER BY create_time DESC 2020-10-15T12:13:47.929941+08:00 INFO rbatis::rbatis - [rbatis] [] Args ==> ["%test%"] 2020-10-15T12:14:01.144418+08:00 INFO rbatis::rbatis - [rbatis] [] ReturnRows <== 1 2020-10-15T12:14:01.144496+08:00 INFO rbatis::rbatis - [rbatis] [] Query ==> SELECT id,name,pc_link,h5_link,pc_banner_img,h5_banner_img,sort,status,remark,create_time,version,delete_flag FROM biz_activity WHERE delete_flag = 0 AND name LIKE ? ORDER BY create_time DESC LIMIT 0,20 2020-10-15T12:14:01.144529+08:00 INFO rbatis::rbatis - [rbatis] [] Args ==> ["%test%"] 2020-10-15T12:14:01.149908+08:00 INFO rbatis::rbatis - [rbatis] [] ReturnRows <== 3 {"records":[{"id":"221","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0},{"id":"222","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0},{"id":"223","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0}],"total":3,"pages":1,"size":20,"current":1,"serch_count":true}忘记说了,MySQL正常,但我用的是PostgreSQL数据库,这种SQL无法执行。
用navcat之类的工具确定一下 ORDER BY 是否不能在pg下执行,如果确定的话,分页插件应该去除统计sql出现的order by 语句
确认过了,不能运行。
确认一下,去除count中的order by 的sql 是否能正常统计? 还有你的报错信息是什么。
我感觉 是不是类型转换引起的,order_by 改成 .order_by(false, &["create_time::timestamp"])【出错】含有 order_by 结果如下:
10-15 15:15:37.833405500 [rbatis::rbatis] INFO:[271] [rbatis] [] Query ==> SELECT count(1) FROM cy_custom_ztzts WHERE 1 = $1 ORDER BY create_date DESC 10-15 15:15:37.847567600 [rbatis::rbatis] INFO:[272] [rbatis] [] Args ==> [1] 10-15 15:15:38.019037600 [] INFO:[34] [F]===> Err(Database(PgError(Response { severity: Error, code: "42803", message: "column \"cy_custom_ztzts.create_date\" must appear in the GROUP BY clause or be used in an aggregate f unction", detail: None, hint: None, position: Some(60), internal_position: None, internal_query: None, where_: None, schema: None, table: None, column: None, data_type: None, constraint: None, file: Some("parse_agg.c"), line: Some(1409), routine: Some("check_ungrou ped_columns_walker") })))
【正确】没有order_by 结果如下:
10-15 15:19:27.325783100 [rbatis::rbatis] INFO:[271] [rbatis] [] Query ==> SELECT count(1) FROM cy_custom_ztzts WHERE 1 = $1 10-15 15:19:27.327838000 [rbatis::rbatis] INFO:[272] [rbatis] [] Args ==> [1] 10-15 15:19:27.531099400 [rbatis::rbatis] INFO:[294] [rbatis] [] ReturnRows <== 1
【出错】order_by 改成 .order_by(false, &["create_date::timestamp"]) 结果如下:
10-15 15:24:52.236024500 [rbatis::rbatis] INFO:[271] [rbatis] [] Query ==> SELECT count(1) FROM cy_custom_ztzts WHERE 1 = $1 ORDER BY create_date::timestamp DESC 10-15 15:24:52.238953900 [rbatis::rbatis] INFO:[272] [rbatis] [] Args ==> [1] 10-15 15:24:52.422045700 [] INFO:[35] [F]===> Err(Database(PgError(Response { severity: Error, code: "42803", message: "column \"cy_custom_ztzts.create_date\" must appear in the GROUP BY clause or be used in an aggregate f unction", detail: None, hint: None, position: Some(60), internal_position: None, internal_query: None, where_: None, schema: None, table: None, column: None, data_type: None, constraint: None, file: Some("parse_agg.c"), line: Some(1409), routine: Some("check_ungrou ped_columns_walker") })))
试一下在 mavcat里 跑一下 能否跑成功
SELECT count(1) FROM (SELECT * FROM cy_custom_ztzts WHERE 1 = 1 ORDER BY create_date DESC) table_count
from rbatis.
let req = PageRequest::new(1, 1); //分页请求,页码,条数 let wraper = RB .new_wrapper() .eq("1", 1) .order_by(false, &["create_date"]) .check() .unwrap(); let r: rbatis_core::Result<Page<CyCustomZtzts>> = RB.fetch_page_by_wrapper("", &wraper, &req).await;
生成了sql:
SELECT count(1) FROM cy_custom_ztzts WHERE 1 = $1 ORDER BY create_date DESC
含有ORDER BY 无法正常运行
我试了没问题呀,是否是最新版本
#[async_std::test] pub async fn test_fetch_page_by_wrapper() { let mut rb = init_rbatis().await; //设置 逻辑删除插件 rb.logic_plugin = Some(Box::new(RbatisLogicDeletePlugin::new("delete_flag"))); let w = rb.new_wrapper() .like("name", "test") .order_by(false, &["create_time"]) .check().unwrap(); let r: Page<BizActivity> = rb.fetch_page_by_wrapper("", &w, &PageRequest::new(1, 20)).await.unwrap(); println!("{}", serde_json::to_string(&r).unwrap()); } 2020-10-15T12:13:47.924730+08:00 INFO rbatis::rbatis - [rbatis] [] Query ==> SELECT count(1) FROM biz_activity WHERE delete_flag = 0 AND name LIKE ? ORDER BY create_time DESC 2020-10-15T12:13:47.929941+08:00 INFO rbatis::rbatis - [rbatis] [] Args ==> ["%test%"] 2020-10-15T12:14:01.144418+08:00 INFO rbatis::rbatis - [rbatis] [] ReturnRows <== 1 2020-10-15T12:14:01.144496+08:00 INFO rbatis::rbatis - [rbatis] [] Query ==> SELECT id,name,pc_link,h5_link,pc_banner_img,h5_banner_img,sort,status,remark,create_time,version,delete_flag FROM biz_activity WHERE delete_flag = 0 AND name LIKE ? ORDER BY create_time DESC LIMIT 0,20 2020-10-15T12:14:01.144529+08:00 INFO rbatis::rbatis - [rbatis] [] Args ==> ["%test%"] 2020-10-15T12:14:01.149908+08:00 INFO rbatis::rbatis - [rbatis] [] ReturnRows <== 3 {"records":[{"id":"221","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0},{"id":"222","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0},{"id":"223","name":"test","pc_link":"","h5_link":"","pc_banner_img":null,"h5_banner_img":null,"sort":"0","status":0,"remark":"","create_time":"2020-06-17T20:10:23","version":"0","delete_flag":0}],"total":3,"pages":1,"size":20,"current":1,"serch_count":true}忘记说了,MySQL正常,但我用的是PostgreSQL数据库,这种SQL无法执行。
用navcat之类的工具确定一下 ORDER BY 是否不能在pg下执行,如果确定的话,分页插件应该去除统计sql出现的order by 语句
确认过了,不能运行。
确认一下,去除count中的order by 的sql 是否能正常统计? 还有你的报错信息是什么。
我感觉 是不是类型转换引起的,order_by 改成 .order_by(false, &["create_time::timestamp"])【出错】含有 order_by 结果如下:
10-15 15:15:37.833405500 [rbatis::rbatis] INFO:[271] [rbatis] [] Query ==> SELECT count(1) FROM cy_custom_ztzts WHERE 1 = $1 ORDER BY create_date DESC 10-15 15:15:37.847567600 [rbatis::rbatis] INFO:[272] [rbatis] [] Args ==> [1] 10-15 15:15:38.019037600 [] INFO:[34] [F]===> Err(Database(PgError(Response { severity: Error, code: "42803", message: "column \"cy_custom_ztzts.create_date\" must appear in the GROUP BY clause or be used in an aggregate f unction", detail: None, hint: None, position: Some(60), internal_position: None, internal_query: None, where_: None, schema: None, table: None, column: None, data_type: None, constraint: None, file: Some("parse_agg.c"), line: Some(1409), routine: Some("check_ungrou ped_columns_walker") })))
【正确】没有order_by 结果如下:
10-15 15:19:27.325783100 [rbatis::rbatis] INFO:[271] [rbatis] [] Query ==> SELECT count(1) FROM cy_custom_ztzts WHERE 1 = $1 10-15 15:19:27.327838000 [rbatis::rbatis] INFO:[272] [rbatis] [] Args ==> [1] 10-15 15:19:27.531099400 [rbatis::rbatis] INFO:[294] [rbatis] [] ReturnRows <== 1
【出错】order_by 改成 .order_by(false, &["create_date::timestamp"]) 结果如下:
10-15 15:24:52.236024500 [rbatis::rbatis] INFO:[271] [rbatis] [] Query ==> SELECT count(1) FROM cy_custom_ztzts WHERE 1 = $1 ORDER BY create_date::timestamp DESC 10-15 15:24:52.238953900 [rbatis::rbatis] INFO:[272] [rbatis] [] Args ==> [1] 10-15 15:24:52.422045700 [] INFO:[35] [F]===> Err(Database(PgError(Response { severity: Error, code: "42803", message: "column \"cy_custom_ztzts.create_date\" must appear in the GROUP BY clause or be used in an aggregate f unction", detail: None, hint: None, position: Some(60), internal_position: None, internal_query: None, where_: None, schema: None, table: None, column: None, data_type: None, constraint: None, file: Some("parse_agg.c"), line: Some(1409), routine: Some("check_ungrou ped_columns_walker") })))
试一下在 mavcat里 跑一下 能否跑成功
SELECT count(1) FROM (SELECT * FROM cy_custom_ztzts WHERE 1 = 1 ORDER BY create_date DESC) table_count
执行成功。
但是这样不会影响效率么?最好还是能自动删除 order by。
from rbatis.
v1.7.0已去除,修复
from rbatis.
Related Issues (20)
- Intermittent Delays in Query Execution After Periods of Inactivity HOT 4
- MSSQL using transactions error: token error: 'Incorrect syntax near 'begin'.' on server MSSQL2016 executing on line 1 (code: 102, state: 1, class: 15) HOT 2
- crud insert is error when the primary key column name is not id
- html_sql can't trim uppercase "and|or" after where HOT 1
- htmlsql_select_page field is filtered problem HOT 2
- The json field of the database is returned as an escaped string HOT 2
- Setting result error using py_sql with single result HOT 1
- Is there any synchronized Chinese document? HOT 3
- Unable to update column to null.
- Prior code to get SQLite version using sqlite_version() works. Now broken. [Solved Manually. See comments] HOT 2
- test_decode_time_zone error
- Variable `recordsValue` should have snake_case name, e.g. `records_value` HOT 5
- Common field processing issues HOT 2
- The document needs to be updated HOT 2
- How to dynamically specify schema HOT 14
- add return primary key value in postgresql HOT 1
- How to use tracing log in rbatis-v4 version HOT 2
- field value with json string, return invalid type: map, expected String error HOT 2
- Setting the maximum connection pool doesn't work well HOT 3
- Hello, I encountered an issue with a plugin dynamically modifying SQL HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rbatis.