选择特定的行SQL

时间:2018-12-21 10:17:40

标签: java mysql sql database jdbc

所以我有一个数据库(UserInfo),它具有以下属性:用户名,电子邮件,密码等。但是我试图从用户名中选择所有值,但是要分别选择,以便可以将它们分别用作字符串。 但是我找不到任何允许您从特定行中选择的语法。

示例:

SELECT Username FROM UserInfo WHERE **row number = 1**

,以便选择行号为1的用户名。有什么想法吗?

这是代码: 最后一种方法使我可以检查“用户名”属性下的字段数,然后可以使用该数字x创建数组大小。

public void declaringDataBase() throws SQLException{

    conObj = DriverManager.getConnection
    ("jdbc:derby://localhost:1527/UserInfo","UserInfo","1234");
    statObj = conObj.createStatement();

    }
public void DisplayUsers() throws SQLException{



   String query = "SELECT Username FROM WHERE rownum = 2";  

   declaringDataBase();
   rsObj = statObj.executeQuery(query);
    System.out.println(rsObj.getString(1));

}

public void returnNumberInUsernameColumn() throws SQLException{

    String queryCount = "SELECT COUNT(Username) FROM UserInfo";


   declaringDataBase();
   rsObj = statObj.executeQuery(queryCount);

 String x = null;

 while(rsObj.next()){
     x = rsObj.getString(1); 

     }

   int returnValue = Integer.parseInt(x);
    System.out.println(returnValue);


}
}

数据库看起来像这样:

Username(PK)     EmailAddress              Password
Joe01            joe@hotmail.co.uk         34590834ffjfdnkdfd
Frank22          Frank@gmail.com           ert543897ut034noegn
Ellie334         Ellie23@yahoo.co.uk       345903ejfbdvkdfvvdg

密码被散列的地方。

我想使用某种整数选择仅说Frank22或Joe01,这样我就可以将其递增以获取用户名中的其他值

6 个答案:

答案 0 :(得分:1)

SELECT
    *
FROM
    mytable
ORDER BY
    somefield
LIMIT 1 OFFSET 5;

此示例为您提供了第六行,offset告诉您跳过了前5行 可在PostgreSQL和mySQL中使用

答案 1 :(得分:0)

如果不这样做,请向您的数据库表中添加一个ID属性。

然后,您可以通过其ID选择任何用户名。

示例

SELECT Username FROM UserInfo WHERE ID = 1

答案 2 :(得分:0)

您可以全部选择它们,然后移动光标。

ResultSet rs = statement.executeQuery("SELECT Username FROM UserInfo");
rs.absolute(yourIndex);
String username = rs.getString(1);

要“在用户名中获取其他值”,可以遍历集合。

rs.absolute(yourIndex);
System.out.printf("username at %d: %s%n", yourIndex, rs.getString(1));
while (rs.next()) {
    yourIndex++;
    System.out.printf("username at %d: %s%n", yourIndex, rs.getString(1));
}

答案 3 :(得分:0)

您应使用主键作为身份列。主键不能为null,因此每一行都有唯一的ID。使用它作为调用特定条目的参考,如下所示:

SELECT UserName
FROM UserInfo
WHERE Identity = 3;

答案 4 :(得分:0)

您必须为此使用偏移量

  

选择表Username的第一个Table1

SELECT Username FROM Table1 LIMIT 1 OFFSET 0;
  

请注意,偏移值从0开始,并且限制表示要一次选择多少行。

为方便起见,您应该为此ID再使用一列CREATE TABLE TABLE3(ID INT PRIMARY KEY AUTO_INCREMENT,Name TEXT, Age INT);并使用ALTER TABLE TABLE3 AUTO_INCREMENT=1,然后访问ID为的每一行

答案 5 :(得分:-1)

使用关键字rownum

Select username from userinfo where rownum = 1