我希望根据某些条件从列表中获取最小或最大项目.下面的摘录总结了我在做什么:
Optional<Person> target;
if(condition){
target = detailedList.stream().min((d1, d2) -> d1.age() + d2.age());
} else {
target = detailedList.stream().max((d1, d2) -> d1.age() + d2.age());
}
Run Code Online (Sandbox Code Playgroud)
它有效,但相当冗长.本质上,我想在流中选择方法min或max.有一个更好的方法吗?
在MySQL上如果我运行查询
SELECT * FROM table WHERE id = '1blah'
Run Code Online (Sandbox Code Playgroud)
并且存在ID为1的记录,查询将实际返回该记录.我正在通过Workbench和PHP/Doctrine执行查询,我得到了相同的结果.
为什么MySQL会这样做?这里涉及的是更一般的数据库概念吗?语言/客户端是否在此方面发挥作用?
最后,PostgreSQL和Oracle将如何表现?