У меня есть запрос:
SELECT mt.* FROM myTable as mt
WHERE mt."colName" IN ("PM")
, и он всегда возвращает нулевые строки. Но если я изменю его так, чтобы строка была заключена в одинарные кавычки:
SELECT mt.* FROM myTable as mt
WHERE mt."colName" IN ('PM')
, тогда он вернет нужные строки.
Подсказка: myTable имеет столбец с именем «PM».
Итак, если я буду искать строки со строкой «AB C» в столбце «colName», он найдет строки. Но если я добавлю столбец с именем «AB C», то этот запрос также не будет выполнен, если я не укажу ('AB C').
Почему?
Любой ответ / решение должны учтите, что список IN будет иметь произвольную длину и будет включать строки со встроенными кавычками (как одинарными, так и двойными).
Кроме того, хотя этот пример предназначен для SQLite, мой запрос также должен работать для Postgres.