私は現在、プロジェクトにSQLKormaを使用していますが、少し問題が発生しています。
2 つの左結合を使用してクエリを作成しました。WHERE
そのうちの 1 つは、句で使用したいエントリを含む配列を含んでいます。
これを SQL で表現するのは簡単です。これは主に編集されたクエリであることに注意してください。
SELECT
cu.name,
c.description,
c.created_at AT TIME ZONE 'utc'
FROM calendar_users cu LEFT JOIN calendars c ON cu.id = c.user_id
LEFT JOIN meetings m ON c.id = m.id
WHERE 'status_report' ILIKE ANY (m.meeting_metadata)
GROUP BY m.meeting_metadata, c.created_at, cu.name, cu.description
ORDER BY c.created_at DESC
に関する部分は、ILIKE ANY
コルマに翻訳できるようにしたいものです。
ドキュメントから、ANY
句が句からサポートされていないことを理解しています。代わりにorWHERE
を使用することを検討する必要があります。raw
exec-raw
それで、パラメータraw
化された文字列をWHERE
句に渡して、目的を達成したいと考えています。
これを試みましたが、Postgres の構文エラーで失敗します。
(select calendars
(fields calendar-user-cols)
(join :calendar_users (= :calendars.user_id :calendar_users.id))
(join :meetings (= :calendars.id :meetings.id))
(where (raw ["? ILIKE ANY(meetings.meeting_metadata)" metadata])))
具体的には:
PSQLException:
Message: ERROR: syntax error at or near "["
Position: 1006
SQLState: 42601
Error Code: 0
Kormaを使用してこれを行うにはどうすればよいですか? 本格的なexec-raw
クエリに頼る必要がありますか?