Comments (6)
Try this:
val score = match(Articles.body).against("mysql tutorial", SearchModifier.IN_BOOLEAN_MODE).cast(FloatSqlType)
val query = Articles
.select(Articles.id, Articles.body, score)
.having { score greater 0F }
.orderBy(score.desc())
from ktorm.
That doesn't work, the match against sql is used in both the having and order by clauses. Like this:
having (match (articles.body) against (? in boolean mode)) > ? order by match (articles.body) against (? in boolean mode)
and there is no AS score
in the SELECT part of the sql.
from ktorm.
Also, what would be the best way to include all of the columns from one table, plus something like this score calculation without having to explicitly list each column? I'd like to be able to do something like this:
select(Articles.columns, score)
from ktorm.
Also, what would be the best way to include all of the columns from one table, plus something like this score calculation without having to explicitly list each column? I'd like to be able to do something like this:
select(Articles.columns, score)
You can use the plus operator for collections:
select(Articles.columns + score)
from ktorm.
That doesn't work, the match against sql is used in both the having and order by clauses. Like this:
having (match (articles.body) against (? in boolean mode)) > ? order by match (articles.body) against (? in boolean mode)
and there is no
AS score
in the SELECT part of the sql.
Actually, the AS
operator is currently not supported.
Thanks for your feedback. I'm working on it.
from ktorm.
Ktorm 2.6 released. Now, we can assign aliases to the selected columns of a query and use them in subsequent clauses such as group by
and having
, just like the as
keyword in SQL. Here is an example. This query selects departments whose average salary is greater than 100, then returns the average salaries along with their department’s IDs.
val deptId = Employees.departmentId.aliased("dept_id")
val salaryAvg = avg(Employees.salary).aliased("salary_avg")
Employees
.select(deptId, salaryAvg)
.groupBy(deptId)
.having { salaryAvg greater 100.0 }
.forEach { row ->
println("${row[deptId]}:${row[salaryAvg]}")
}
Generated SQL:
select t_employee.department_id as dept_id, avg(t_employee.salary) as salary_avg
from t_employee
group by dept_id
having salary_avg > ?
from ktorm.
Related Issues (20)
- ktorm-support-mysql 在maven仓库中没有找到 HOT 1
- Sequence update not as expected when table column with an ON UPDATE CURRENT_TIMESTAMP clause HOT 1
- Is this still actively maintained? HOT 6
- Apache Derby DB: In case of reference entity API and using table references, ktorm generates SQL aliases with first underscore character(_) that invalid for Apache DB HOT 2
- Type mismatch.
- [Feature Request]:Field update strategist, pre positioned during insertion and update
- Connectivity problem HOT 1
- 关于join的优化
- Multiple onConflict at bulkInsertOrUpdate HOT 1
- MySQL存储UUID报错 HOT 8
- 自定义支持MySQL的find_in_set函数 HOT 5
- 适配 solon框架 HOT 1
- Union功能存在问题? HOT 2
- 关于列绑定,能不能先references再transform?
- 🧐为什么不添加支持分页的函数呢 HOT 2
- Oracle Timestamp support
- Database#exceptionTranslator should return a nullable throwable
- 4.0版本使用KSP生成实体类运行出错 HOT 8
- ksp column converter in version 4.0.0 disappeared HOT 1
- Ktorm 别名机制似乎有问题 HOT 2
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 ktorm.