SQLite在结果查询中获取单行位置而不使用循环

时间:2016-04-06 08:03:17

标签: java android sql sqlite

使用sql查询我得到100个结果行。我需要知道这100行内的单行位置。我有独特的字段,我可以循环检查,但这需要很长时间。有没有办法让我可以在查询结果中获得单项位置。

例如:我的表格中包含唯一的用户ID (12, 13, 20, 21, 34, 5)。这些用户按创建日期排序。如何通过SQL查询获取id = 34的用户位置?

2 个答案:

答案 0 :(得分:3)

优化SQL查询总是更有效率,可以在巨大的结果上运行。

制作select where子句,在其中您将检查有多少用户的创建日期少于所需的ID所有者

SELECT 
    count(*) 
FROM 
    table 
WHERE 
    creationDate < (SELECT creationDate FROM table WHERE id = 34)

然后记录位置是上面选择的值(或者你需要加1取决于你是从0还是1计算)。

如果可以重复创建日期,则需要处理这种情况取决于您使用相同creationDate处理记录的方式(可能简单creationDate <= ...就足够了)

答案 1 :(得分:0)

你可以尝试这样的事情

    contentPane = new JPanel();
    contentPane.setBorder(new SoftBevelBorder(BevelBorder.LOWERED, null, null, null, null));
    setContentPane(contentPane);
    contentPane.setLayout(null);

    homePanel.setBounds(10, 11, 959, 620);
    homePanel.setLayout(null);

    JPanel wizardPanel = new JPanel();
    wizardPanel.setBounds(10, 295, 545, 336);
    wizardPanel.setLayout(null);
    homePanel.add(wizardPanel);

    JLabel backgroundLabel;
    try {
        backgroundLabel = new JLabel(new ImageIcon(ImageIO.read(new File("images/nature.jpg"))));
        backgroundLabel.setBounds(0, 0, 545, 336);
        wizardPanel.add(backgroundLabel);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


    JButton btnNewButton = new JButton("New button");
    btnNewButton.setBounds(309, 95, 89, 23);
    wizardPanel.add(btnNewButton);

    JButton btnNewButton_1 = new JButton("New button");
    btnNewButton_1.setBounds(309, 150, 89, 23);
    wizardPanel.add(btnNewButton_1);

    JButton btnNewButton_2 = new JButton("New button");
    btnNewButton_2.setBounds(309, 212, 89, 23);
    wizardPanel.add(btnNewButton_2);