私はpostgresqlでphoenix-frameworkを使用しています。uuidを使ってデータベースを検索するには?
検索機能を実装するために、ilike
エクトクエリを使用し、すべての検索機能が正常に動作しました。たとえば、商品名で商品を検索する機能があり、うまく機能します。
def item_searh_results(language_id, name) do
from(p in ItemLanguage, where: p.language_id == ^language_id
and ilike(p.name, ^("%#{name}%")),
select: %{id: p.item_id,
name: p.name}) |> Repo.all
end
私は、モデルを持っているSales
、それがその主キーにuuid
を使用しています。
ilike
上記のようなecto query apiを使用して販売を検索しようとしています。だから私は同様のクエリを作った。
from(p in Sales, where: ilike(p.id, ^("%#{id}%")))|> Repo.all
しかし、それは** (Postgrex.Error) ERROR 42883 (undefined_function): operator does not exist: uuid ~~* unknown
を検索するilike
クエリを使用することが可能であることがエラーを返しますか?もしそうなら、私はここで間違って何をしていますか?
ありがとうございます。
はい、私は検索する方法をthatsの。今私は、UUIDで検索するために、それを 'text'に変換する必要があることを理解しています。私はあなたのソリューションを試しましたが、 'type(p.id()、:text)'は有効なクエリ式ではありません。テキストに変換する方法はありますか? –
編集したバージョンを試してみてください。私は 'type'を' fragment'に切り替えました。これはうまくいくはずです。 – Dogbert