[Go] xormのWHERE句でLIKE検索したいときの書き方

はじめに

調べても出てこなかったので、色々試して実際に動いたコードを共有します。
短くて、雑な記事ですが誰かの役に立てば嬉しいです。

本題

//略
.Where("{{テーブル名}}.{{ カラム名 }} LIKE ?", {{ 変数 }}+"%")
//略

こんな感じです。
{{テーブル名}}.{{ カラム名 }}のところは、扱うのが1つのテーブルであれば、{{ カラム名 }}だけで大丈夫です。

また、%の位置は今回後ろにつけていますが、
{{ 変数 }}+"%"
"%"+{{ 変数 }}
"%"+{{ 変数 }}+"%"
どのパターンでも問題なく動作しました。

//略
.Where("hoge_table.fuga_column LIKE ?", c.Name+"%")
//略

例で書くとこんな感じです。
%の前後に"を忘れないように注意!

さいごに

今回はサンプルコードだけの簡素な記事ですみません。
このコードについて、もっと良い書き方を知っている方がいれば、ぜひコメント欄に書いて頂ければ嬉しいです。

最後までありがとうございました。

PON3

PON3

5年くらい前に、30代完全未経験から独学でWeb系のソフトウェアエンジニアになった人。 現在はフリーランスエンジニアとして、大阪の自宅からフルリモートで東京の自社開発企業のお仕事をしている。 主戦場はバックエンドで、Go言語でのAPI開発や、Pythonでのデータ分析が武器。 とは言いつつ、フロントエンドをSPAを実装したり、IaCでクラウドインフラの設計構築したり、スクラム開発でプロジェクト運営したりするなんでも屋。 いつも、ググってきては誰かが書いてくれた記事を見て開発していたが、もらってばかりでなく世の中に返すこともしたいと思い、技術ブログをはじめる。 妻と2歳になる娘の3人暮らし。 何かご用件がある方は、TwitterのDMからどうぞ。