Я хочу получить все идентификаторы песен, связанные с введенным мной ID пользователя, но он печатает только первый результат.
Мой код:
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
Fetchall получает все совпавшие песни. Вы печатаете только первый из них. Попробуйте распечатать вывод fetchall






Вы показываете только первый столбец первых строк из-за
[0][0] после этой строки print result.fetchall()[0][0]
Добавьте «LIMIT NN» в свой запрос SQL. Это ограничит вывод количеством строк NN:
sql = "SELECT * FROM Table LIMIT 5"
Даст вам только 5 рядов.
в БД MS SQL это должно быть ключевое слово "TOP":
sql = "SELECT TOP 5 * FROM Table"
Я исправил это, добавив цикл fetchall().
rows = result.fetchall()
for row in rows:
print row
Проблема с вашим оператором печати. Прямо сейчас, предоставляя print result.fetchall()[0][0], вы просите python напечатать один элемент. Использовать
for item in result.fetchall():
print item
Ваш подзапрос
SELECT *выглядит ненужным, но в любом случае вам следует проверить свои данные, потому что, похоже, с этим пользователем связана только одна песня.