Почему CONTAINS и LIKE не работают в SQL? - PullRequest
0 голосов
/ 04 февраля 2019

Я пытаюсь извлечь ключевые слова из SQL database, а CONTAINS и LIKE не мешают.

import pandas as pd
from sqlalchemy import create_engine
engine = create_engine('sqlite://', echo=False)

df = pd.read_csv('data.csv')
sql = df.to_sql('table1', con=engine,index=True)
q1 = engine.execute('SELECT * FROM table1 WHERE features LIKE "Swimming" ').fetchall()
q2 = engine.execute('SELECT * FROM table1 WHERE CONTAINS(features, "Swimming") ').fetchall()

Я пробовал оба пути, но не получаюответ.И я получаю эту ошибку OperationalError: (sqlite3.OperationalError) нет такой функции: СОДЕРЖИТ [SQL: 'SELECT * FROM table1, ГДЕ СОДЕРЖИТ (функции, "Плавание")'] (Справочная информация об этой ошибке на: http://sqlalche.me/e/e3q8)

1 Ответ

0 голосов
/ 04 февраля 2019

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

q1 = engine.execute("SELECT * FROM table1 WHERE features LIKE '%Swimming%' ").fetchall()

Возможно, вы захотите изменить «Плавание» на «% Плавание%», чтобы его можно было сопоставить с любымзначение, в котором есть Плавание.

...