所以我有一个数据库(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,这样我就可以将其递增以获取用户名中的其他值
答案 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