Я хочу знать, как я могу отформатировать строку, возвращаемую API, чтобы Mysql мог ее обработать.
Это строка, которую возвращает мой API: bad_string = "History,Romance,Business & Money"
Попытка 1:
cursor.execute("SELECT * FROM book WHERE scrape_category IN (%s) ORDER BY RAND() LIMIT 15", bad_string)
Возвращает это сообщение:
Traceback (most recent call last):
File "C:\PATH", line 23, in <module>
cursor.execute("SELECT * FROM book WHERE scrape_category IN (%s) ORDER BY RAND() LIMIT 15", bad_string)
File "C:\PATH\AppData\Roaming\Python\Python37\site-packages\mysql\connector\cursor_cext.py", line 259, in execute
"Not all parameters were used in the SQL statement")
mysql.connector.errors.ProgrammingError: Not all parameters were used in the SQL statement
Попытка 2:
bad_string_2 = "'Romance', 'History', 'Business & Money'"
cursor.execute("SELECT * FROM book WHERE scrape_category IN (%s) ORDER BY RAND() LIMIT 15", bad_string_2)
Возвращает это сообщение:
Traceback (most recent call last):
File "C:PATH", line 21, in <module>
cursor.execute("SELECT * FROM book WHERE scrape_category IN (%s) ORDER BY RAND() LIMIT 15", bad_string_2)
File "C:\PATH\AppData\Roaming\Python\Python37\site-packages\mysql\connector\cursor_cext.py", line 246, in execute
prepared = self._cnx.prepare_for_mysql(params)
File "C:\PATH\AppData\Roaming\Python\Python37\site-packages\mysql\connector\connection_cext.py", line 520, in prepare_for_mysql
raise ValueError("Could not process parameters")
ValueError: Could not process parameters
Это работает:
cursor.execute("SELECT * FROM book WHERE scrape_category IN ('Romance', 'History', 'Business & Money') ORDER BY RAND() LIMIT 15")
Запрос работает, когда я делаю это:
cursor.execute("SELECT * FROM book WHERE scrape_category IN ('Romance', 'History', 'Business & Money') ORDER BY RAND() LIMIT 15")
Как мне отформатировать строку и заставить MySQL возвращать результаты?