- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在数据库中,我有一个字符串字段。我想按字母顺序查找不在数据库中的候选字符串的上一行和下一行。一种解决方案是将这个候选人临时插入数据库并在字段上执行 ORDER BY,但这会产生性能问题(在每次选择之前执行插入)。您知道执行此操作的任何其他方法吗?
谢谢
最佳答案
以下内容可能会为您提供一些入门指南。
SELECT MAX(StringField)
FROM YourTable
WHERE StringField < Candidate
UNION ALL
SELECT MIN(StringField)
FROM YourTable
WHERE StringField > Candidate
要检索整个记录(并假设您的 StringFields 是唯一的),您可以将其包装到子查询中。
SELECT *
FROM YourTable yt
INNER JOIN (
SELECT StringField = MAX(StringField)
FROM YourTable
WHERE StringField < Candidate
UNION ALL
SELECT MIN(StringField)
FROM YourTable
WHERE StringField > Candidate
) yts ON yts.StringField = yt.StringField
注意:一种优化可能是比较所有大写(或小写)字符,以便 Andy 和 ANDY 具有相同的权重。
关于sql - 在字母索引中查找候选人的上一个和下一个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5668069/
pimpl(也称为:编译器防火墙)惯用语用于缩短编译时间,但代价是可读性和一点运行时性能。目前一个项目需要很长时间才能编译,如何衡量最好的 pimpl 候选人? 我有使用 pimpl 的经验,可以将项
[下面用粗体表示的问题] 我在运行 OS Ubuntu 14.04 的防火墙后面的数据中心中设置了 Kurento Media Server 5.1.3。它有两个网卡: 222.222.222.222
我正在使用 Kurento Utils用于与 Kurento 媒体服务器(ver 5.x)的 WebRTC 连接 在初始化期间的 kurento-utils-js 库中,简化代码如下所示: if (!
在 unite.vim 中搜索后,你打开一个候选人。有没有一种简单的方法可以跳转到下一个而无需再次运行搜索命令?类似的插件( ack.vim , git-grep )使用快速修复窗口,因此您可以输入
为了我自己,我正在逐步测试 WebRTC 程序。 我为无服务器 WebRTC 编写了一些测试站点。 http://webrtcdevelop.appspot.com/ 其实使用的是google的STU
我有一个基本的 webRTC 应用程序,它支持两个同行之间的视频/音频通信和文件共享,当我在 Mozilla Firefox 上打开它时,该应用程序按预期运行,但当我在 Google Chrome 上
我是一名优秀的程序员,十分优秀!