Выберите запрос: код ошибки 1292 - усеченное неверное значение DOUBLE - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь получить все данные из столбца в mysql, когда пользователь вводит данные таблицы и столбца через библиотеку mysqlconnector в python. Когда я запускал запрос через python, никакие данные не отображались, а затем, когда я запускал его через Phpmyadmin, я получал следующие ошибки:

Warning: #1292 Truncated incorrect DOUBLE value: 'Matisse'
Warning: #1292 Truncated incorrect DOUBLE value: 'Picasso'
Warning: #1292 Truncated incorrect DOUBLE value: 'van Gogh'
Warning: #1292 Truncated incorrect DOUBLE value: 'Deli'

Я обнаружил, что запрос работает только для столбцов, которые основаны на целых числах, и не работает для столбцов даты и времени (varchar) (L_Name, из которого запрос не работает: varchar(25).

Вот запрос:

SELECT * FROM `artist` WHERE L_Name

После того, как запрос запущен и выдает эти ошибки, запрос сам по себе изменится на:

SELECT * FROM `artist` WHERE 1

Этот новый запрос возвращает всю таблицу и все ее столбцы и строки, но, конечно, все, что мне нужно, это для просто вернуть один столбец.

РЕДАКТИРОВАТЬ: Чтобы уточнить, смысл выполнения запроса SELECT * FROM `artist` WHERE L_Name состоит в том, чтобы вызвать весь список значений в этом столбце для этой таблицы. Это только один случай и есть много других случаев, например, если пользователь хотел найти определенную запись c из таблицы art_show, а затем просмотреть все значения в столбце расположения галереи.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020

Я не думаю, что ошибка в том, что проблема в том, что вы сделали varchar, возможно, проверьте ваш python код?

0 голосов
/ 30 апреля 2020

разобрался с решением. У моего Python была проблема, когда он печатал только первое значение из-за того, как я настроил оператор печати. Исправлено, изменив запрос в 3-й строке, а также изменив оператор печати с print (rec [0]) на print (re c)

def show_entries(table, column):
    print(f"Here's the records in the table {table} and the column {column}.")
    mycursor.execute(f"SELECT {column} FROM {table}")
    myresult = mycursor.fetchall()
    for rec in myresult:
        print(rec)
...