我有一张表,我希望能够提供"排名为Y的Y"数据.特别是,我希望能够以相对有效的方式呈现单个行的数据(即,不选择表中的每一行).排名本身很简单,它是表中单个列的直接ORDER BY.
Postgres似乎在这方面提出了一些独特的挑战; AFAICT它没有RANK或ROW_NUMBER或等效功能(至少在8.3,我暂时坚持).邮件列表档案中的规范答案似乎是创建一个临时序列并从中进行选择:
test=> create temporary sequence tmp_seq;
CREATE SEQUENCE
test=*> select nextval('tmp_seq') as row_number, col1, col2 from foo;
Run Code Online (Sandbox Code Playgroud)
当我想从表中选择一行时,似乎这个解决方案仍然没有帮助(我想通过PK选择它,而不是按等级选择).
我可以对一个单独的列进行非规范化并存储排名,这使得数据显得微不足道,但只是重新定位我的问题.UPDATE不支持ORDER BY,所以我不确定如何构造UPDATE查询来设置排名(没有选择每一行并为每一行运行单独的UPDATE,这似乎是对DB活动的过多每次排名需要更新时触发).
我错过了一些明显的东西吗 什么是正确的方法呢?
编辑:显然我不够清楚.我知道OFFSET/LIMIT,但我不知道它如何帮助解决这个问题.我不是要选择排序第X的项目,我试图选择一个任意项目(通过它的PK,比如说),然后能够向用户显示类似"在312中排名第43位"的内容.
以下是相关的配置文件,也可以在http://dpaste.com/97213/上找到.
apache配置当前正在工作,因为访问'example.com/'会显示我放在文档根目录下的index.html文件.
我想在前缀'/ d'上提供Django/apps,因此'example.com/d/'会加载默认应用,'example.com/d/app3'会加载另一个,如在网址中配置的那样. PY.
服务Django,我在Linux上使用建议的mod_wsgi.
目前,我可以在'example.com/d'访问Ticket应用程序,但当@login_required装饰器尝试将我发送到登录页面时,我会收到'example.com/accounts/login',而不是预期的'example.com/d/accounts/login'.
由于默认应用程序正确加载,我不确定我在这里做错了什么,或者在生成网址时这是否是Django中的错误.
有什么建议?
编辑: 作为一个说明,如果我更改apache配置行:WSGIScriptAlias/d /home/blah/django_projects/Tickets/apache/django.wsgi到WSGIScriptAlias//home/blah/django_projects/Tickets/apache/django.wsgi该应用程序,评论和登录所有工作正常.即使转到'example.com/admin'也会加载管理员,虽然我已经断开了管理媒体,因此没有加载任何样式表.
---配置关注:
#
# /home/blah/django_projects/Ticket/urls.py
#
from django.conf.urls.defaults import *
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
(r'^', include('ticket.urls')),
(r'^admin/', include(admin.site.urls)),
(r'^comments/', include('django.contrib.comments.urls')),
)
#
# /home/blah/django_projects/Ticket/apache/django.wsgi
#
import os, sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..')
sys.path.append('/home/blah/django_projects')
sys.path.append('/home/blah/django_projects/Tickets')
os.environ['DJANGO_SETTINGS_MODULE'] = 'Tickets.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
#
# /etc/apache2/sites-available/django_tickets_wsgi (apache conf)
#
NameVirtualHost *
<VirtualHost *>
Alias /media /home/blah/django_projects/Tickets/media
WSGIScriptAlias /d /home/blah/django_projects/Tickets/apache/django.wsgi
WSGIDaemonProcess exmaple_com user=blah group=blah …Run Code Online (Sandbox Code Playgroud) 是否可以在cygwin下使用GCC正确构建目标c代码.
我有以下应用程序应该在Mac环境中工作,但无法获得最基本的东西来使用gcc.我需要更多的库吗?
#import "HelloWorldApp.h"
int main(int argc, char *argv[]) {
return 0;
} // End of the //
@interface Car
{
int test;
}
//The registration is a read-only field, set by copy
@property int (readonly, copy) test;
//the driver is a weak reference (no retain), and can be modified
//@property Person* (assign) driver;
@end
CC=gcc
CXX=gcc-g++
LD=$(CC)
CFLAGS=
LDFLAGS=-lobjc
all: HelloWorld
HelloWorld: HelloWorld.o
$(LD) $(LDFLAGS) -o $@ $^
%.o: %.m
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
clean:
rm …Run Code Online (Sandbox Code Playgroud) 这里简单的东西......
如果我尝试通过Django引用cookie
request.COOKIE["key"]
Run Code Online (Sandbox Code Playgroud)
如果cookie不存在将导致密钥错误.
对于Django的GET和POST,因为它们是QueryDict对象,我可以做
if "foo" in request.GET
Run Code Online (Sandbox Code Playgroud)
这非常精致......
对于不是Try/Catch块的cookie,最接近这个的是什么,如果有的话......
我正在用PHP编写一个简单的SFTP客户端,因为我们需要通过n个远程服务器以编程方式检索文件.我正在使用PECL SSH2扩展.
不过,我遇到了一个障碍.php.net上的文档表明你可以这样做:
$stream = fopen("ssh2.sftp://$sftp/path/to/file", 'r');
Run Code Online (Sandbox Code Playgroud)
但是,我有一个尝试类似的ls方法
public function ls($dir)
{
$rd = "ssh2.sftp://{$this->sftp}/$dir";
$handle = opendir($rd);
if (!is_resource($handle)) {
throw new SFTPException("Could not open directory.");
}
while (false !== ($file = readdir($handle))) {
if (substr($file, 0, 1) != '.'){
print $file . "\n";
}
}
closedir($handle);
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
PHP Warning: opendir(): Unable to open ssh2.sftp://Resource id #5/outgoing on remote host
Run Code Online (Sandbox Code Playgroud)
这非常有意义,因为当您将资源转换为字符串时会发生这种情况.文档错了吗?我尝试用主机,用户名和主机替换资源,但这也不起作用.我知道路径是正确的,因为我可以从命令行运行SFTP,它工作正常.
有没有其他人尝试过使用SFTP的SSH2扩展?我错过了一些明显的东西吗?
更新:
我在内部的另一台机器上安装了sftp,它运行得很好.所以,我试图连接到的服务器必须有一些不起作用.
出于记录目的,我们的应用程序中的一些方法包括以下行:
Dim Log As ILog = GetLog(Reflection.MethodBase.GetCurrentMethod().DeclaringType)
Run Code Online (Sandbox Code Playgroud)
我有可能被描述为对反思的非理性恐惧,我试图控制它.但是,在每秒执行一百次的方法中,这样的调用会引起我的注意.我不太了解反思; 但是从简要介绍文档来看,我认为我可以用以下内容替换以下内容:
Dim Log As ILog = GetLog(Me.GetType())
Run Code Online (Sandbox Code Playgroud)
我的问题有三方面:
Me.GetType()实际上返回相同Type的GetCurrentMethod().DeclaringType?Me.GetType()实际上做任何事情不同的GetCurrentMethod().DeclaringType,或者是做引擎盖下是一回事吗?使psycopg2将参数化查询传递给PostgreSQL的最佳方法是什么?我不想编写自己的escpaing机制或适配器,psycopg2源代码和示例很难在Web浏览器中阅读.
如果我需要切换到类似PyGreSQL或其他python pg适配器的东西,那对我来说没问题.我只想要简单的参数化.
我正在寻找Java ByteBuffer的C++"等价物".
我可能错过了显而易见的或只是需要一个孤立的用法示例来澄清.我已经浏览了iostream系列,看起来它可能提供了基础.具体来说,我希望能够:
我们有多个开发人员在相同的代码库上工作.我们也在尝试使用SourceSafe(6.0)
当一个开发人员对其本地副本进行代码更改时,我们会在此版本的已更改对象列表中进行注释.
在编译我们的下一个版本时,我们打开"主"副本,将所有更改从SourceSafe更新到主副本,然后编译.
此时,所有其他开发人员代码现在与主副本不同步,我们需要将所有更改推送到所有开发人员本地副本,因此我们都在查看相同版本的源代码.开始新的发布周期.
有没有办法让SourceSafe用最新的更改更新本地副本,或者我们是否需要手动完成基于已更改对象的列表(这是我们现在正在做的...)请不要告诉我使用"获取最新版本".它一次只能在一个文件上运行,并且是我们现在正在使用的过程.
谢谢
django ×2
postgresql ×2
python ×2
vb6 ×2
.net ×1
apache ×1
bytebuffer ×1
c++ ×1
cookies ×1
cygwin ×1
delete-file ×1
file-io ×1
gcc ×1
gettype ×1
http ×1
java ×1
mod-wsgi ×1
objective-c ×1
performance ×1
php ×1
psycopg2 ×1
ranking ×1
reflection ×1
sftp ×1
sql ×1
ssh ×1
vb.net ×1
winapi ×1
windows ×1
wrapper ×1