SQL查询只选择第一个结果

时间:2019-04-06 10:22:56

标签: python sql user-input

我想检索与我输入的 userID 关联的所有 songID ,但它只会打印第一个结果。

数据库: enter image description here

我的代码:

enter = raw_input('Enter UserID: ')
cursor = MusicData.cursor()
sql = "SELECT * FROM (SELECT songID FROM train WHERE userID=? )"
result = cursor.execute(sql,(enter,))
print result.fetchall()[0][0],
Enter UserID: 3a613180775197cd08c154abe4e3f67af238a632
SODOZXB12A8C13CD55

4 个答案:

答案 0 :(得分:1)

由于以下原因,您只在第一列显示第一行 [0][0]之后的print result.fetchall()[0][0]

答案 1 :(得分:0)

在您的SQL请求中添加“ LIMIT NN”。这样会将输出限制为NN行数:

sql = "SELECT * FROM Table LIMIT 5"

只会给你5行。

在MS SQL DB上,它应该是“ TOP”关键字:

sql = "SELECT TOP 5 * FROM Table"

答案 2 :(得分:0)

我通过添加fetchall()的for循环来修复它

if (dt1.Columns.Contains("ID"))
{
    for (int i = dt1.Rows.Count - 1; i >= 0; i--)
    {
        DataRow dr = dt1.Rows[i];

        if (dr["ID"].ToString() != "" && dr["ID"].ToString() != null)
        {
            dr.Delete();
        }
    }

    dt1.Columns.Remove("ID");
}

答案 3 :(得分:0)

问题出在您的打印对帐单上。现在,通过提供print result.fetchall()[0][0],您正在要求python打印一个元素。使用

for item in result.fetchall():
    print item