I am doing some silly mistake with the syntax but cant figure out what.
I am trying to use sqlalchemy func to compare a DB field and a variable by turning them both in lower cases, but the output comes null as if the condition isn’t satisfying.
The same thing works if I don’t use func and pass a static variable.
The Code:
question = "Hey"
q1 = QuestionsAndAnswers.query.filter(func.lower(QuestionsAndAnswers.question) == func.lower(question)).all()
q2 = QuestionsAndAnswers.query.filter(QuestionsAndAnswers.question == "Hey").all()
print "q1", q1
print "q2", q2
The Output:
q1 []
q2 [<intercom_bot.models.QuestionsAndAnswers object at 0x7f1e2c7add50>]
The DB:
+----+-----------------+--------------------------------------------------+------------+
| id | question | answer | created_at |
+----+-----------------+--------------------------------------------------+------------+
| 1 | Hi | Hey, Here I am and here you are. How can I help? | NULL |
| 2 | Hello | Hey, Here I am and here you are. How can I help? | NULL |
| 3 | Helo | Hey, Here I am and here you are. How can I help? | NULL |
| 4 | Heelo | Hey, Here I am and here you are. How can I help? | NULL |
| 5 | Hell | Hey, Here I am and here you are. How can I help? | NULL |
| 6 | Hallo | Hey, Here I am and here you are. How can I help? | NULL |
| 7 | Hey | Hey, Here I am and here you are. How can I help? | NULL |
| 8 | He | Hey, Here I am and here you are. How can I help? | NULL |
| 9 | Ho | Hey, Here I am and here you are. How can I help? | NULL |
| 10 | I need help | Hey, Here I am and here you are. How can I help? | NULL |
| 11 | Help | Hey, Here I am and here you are. How can I help? | NULL |
| 12 | can you help me | Hey, Here I am and here you are. How can I help? | NULL |
| 13 | Greetings | Hey, Here I am and here you are. How can I help? | NULL |
+----+-----------------+--------------------------------------------------+------------+
PS:
print QuestionsAndAnswers.query.filter(func.lower(QuestionsAndAnswers.question) == func.lower(question))
gives this:
SELECT questions_and_answers.id AS questions_and_answers_id, questions_and_answers.question AS questions_and_answers_question, questions_and_answers.answer AS questions_and_answers_answer, questions_and_answers.created_at AS questions_and_answers_created_at
FROM questions_and_answers
WHERE lower(questions_and_answers.question) = lower(:lower_1)
Aucun commentaire:
Enregistrer un commentaire