uniqueNumというカラムの値を既存のレコードからすべて取得したいのですが、以下のqueryで10件までしか取得することができません。
var update = new kintone.Promise(function(resolve, reject) {
var now = new Date();
var Year = now.getFullYear();
var body ={
"app":32,
"query": "ApprovalYear ="+Year+" order by uniqueNum desc limit 1 offset 0",
"fields":["uniqueNum"]
};
kintone.api(kintone.api.url('/k/v1/records', true), 'GET', body, function(resp) {
resolve(resp);
})
})
どのようにしたらすべて取得できるのか、わかる方がいらしたらお力添えをお願いいたします。
宜しくお願い申し上げます。
ryoryo さん
こんにちは。ひよこです。
limit 1 となっているので、1件しか取得できないように見えますね…。
レコード全件取得については、これらの記事が参考になると思います!
ひよこ様
コメント誠に有難うございます。改めて質問内容を確認して、不明瞭な内容であったことをお詫び申し上げます。
さて真意としてはですがdesc limit 1 としているため、対象カラムの最大値を1つだけ取得することとしております。ここで、取得した数値に1をら加算して新たなレコードの同じカラムに追加していくのですが、10まで加算されたところで止まってしまい、それ以上の新規レコードはすべて10になってしまうことから、queryの対象が10件?または9件までになってしまっているのかと、これを解消する方法をご質問させて頂きました。
つまり最大値が10になった次の11にはならないためqueryで10のレコードは検索されていないようです。
何卒、宜しくお願い申し上げます。
ryoryo さん
ひよこです。
やりたいこと、なんとなくわかりました(自動採番的なことをしたいという意味でしょうか?)
クエリは間違ってないと思いますが、もしかすると、uniqueNum が文字列フィールドになっていませんか?
文字列の場合、降順で並び替えしたときの最大値は、9になります(1〜10までの数字の場合。1〜100 だと 99 が最大)
9 + 1 = 10 なので、後はすべて 10 になるのではないでしょうか。
もしそうであれば、uniqueNum を数値フィールドに変更してください。
↓ 一覧画面で、文字列(1行)のフィールドに数字を入れて、降順で並び替えしてみました。
ご指摘の通りでした!RDBの型において、文字列で入力された数値はそのように判断されてしまうのですね。。。
ご質問して良かったです!多分自分ではしばらく気づくことができなかったと思います。
思いっきり感謝いたします!
宜しくお願い申し上げます。