使用sql查询我得到100个结果行。我需要知道这100行内的单行位置。我有独特的字段,我可以循环检查,但这需要很长时间。有没有办法让我可以在查询结果中获得单项位置。
例如:我的表格中包含唯一的用户ID (12, 13, 20, 21, 34, 5)
。这些用户按创建日期排序。如何通过SQL查询获取id = 34
的用户位置?
答案 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);