sqliteのMAX
iPhoneのアプリ開発が続いています。
昨日から悩んでいたのが、sqliteまわり。
単純なSQL文です。
"SELECT MAX(X) FROM TABLE1 WHERE Y=?"
ここで、プリペアード・ステートメントを作って、変数をバインドします。
"if(sqlite3_step(sql3_statement)==SQLITE_ROW){"
で、条件に合う答えが返らなかったときと、返ったときと処理を分けたのですが、条件に合う答えがなかったときにも、「SQLITE_ROW」が返る。
そのときの、MAX(X)の値は、「0」。
「SQLite Database Browser」で、同じSQL文を発行すると、結果は空。
昨日の夜から悩んでいたのですが、結局、こういうものだと割り切って、SQL文を、"SELECT MAX(X),COUNT(X) FROM TABLE1 WHERE Y=?"に変更し、カウントの数で処理を分けることにしました。
一件落着。


コメントする