2008-09-17

GQLのWHERE条件にINを使うときの注意点

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
GQLのWHERE条件にINを使うときに配列を渡すわけですが、その配列に要素が一つもないとどうもその条件がまったく聞いていない気配。

search_list = []
aaa = db.GqlQuery("SELECT * FROM AAA WHERE colcolIN :list",list = search_list)

aaa = db.GqlQuery("SELECT * FROM AAA")
と同じことになっている気配。
個人的には、ひっかかるものが何もないという感じで返してくれる方がうれしかったのですが。

なのでこの動作だとちょっとイヤだなと思う人は、
事前に渡す配列の要素数が0であることをチェックする
か、
絶対にひっかからないダミーの要素を一個入れておく
などする必要がありそうです。
コメントを投稿