Как убрать запятые из оператора select - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть следующий код

for item in lesson:
            result = connection.execute("SELECT bookingID FROM Booking WHERE lessonBooked = ? AND dateBooked = ? AND username = ?",([item,now1,self.username]))
            result = result.fetchall()
            if(len(result) > 0):
                for item2 in result:
                    print (item2)
                    result2 = connection.execute("SELECT roomNO FROM BookedRoom WHERE bookingID = ?",([item2]))
                    result2 = result2.fetchall()
                    print (result2)

Вывод строки вывода print2: (39,) (43,) (48,) (49,) Код сбой при добавлении последних 3линий.Ожидается вывод item2, но есть способ удалить запятую, так как я подозреваю, что запятые вызывают проблему, поскольку список item2 затем используется для выбора из таблицы BookedRoom.

Ответы [ 3 ]

1 голос
/ 17 апреля 2019

Попробуйте это для своей второй строки исполнения:

result2 = connection.execute("SELECT roomNO FROM BookedRoom WHERE bookingID = ?",([item2[0]]))
1 голос
/ 17 апреля 2019

fetchall возвращает последовательность последовательностей (обычно список кортежей), независимо от того, возвращает ли она одну или несколько строк, или если вы выбираете один или несколько атрибутов. Таким образом, вы можете использовать item2[0] или более просто, просто использовать последовательность:

result2 = connection.execute("SELECT roomNO FROM BookedRoom WHERE bookingID = ?", item2)
0 голосов
/ 17 апреля 2019

Если функция печати печатает строку, попробуйте этот код:

for item in lesson:
            result = connection.execute("SELECT bookingID FROM Booking WHERE lessonBooked = ? AND dateBooked = ? AND username = ?",([item,now1,self.username]))
            result = result.fetchall()
            if(len(result) > 0):
                for item2 in result:
                    print (item2[:-1])
                    result2 = connection.execute("SELECT roomNO FROM BookedRoom WHERE bookingID = ?",(item2[:-1]))
                    result2 = result2.fetchall()
                    print (result2)

Это не будет учитывать последний символ из строки.

Или вы можете попробовать это:

result2 = connection.execute("SELECT roomNO FROM BookedRoom WHERE bookingID = ?",([item2[0]]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...