4

SQLクエリをより具体的にすることで、コードを改善しようとしています:

次のコードは機能し、結果を操作できます。しかし、おそらく最も効率的ではありません:

function queryDB(tx) {
    tx.executeSql('SELECT * FROM foo', [], querySuccess);
}

function querySuccess(tx, results) {
    console.log(results.rows.item(0).name);
}

OUTPUT: JOHN

だから私がしようとすると:

function queryDB(tx) {
    tx.executeSql('SELECT id FROM foo WHERE id = 1', [], querySuccess);
}

function querySuccess(tx, results) {
    console.log(results.rows.item(0).name);
}

OUTPUT: undefined 

クエリと配列で異なる数値を使用しようとしましたが、何も機能しません。クエリが間違っていると思います。

ありがとう!

4

2 に答える 2

3

まず、ID が 1 の行がありますか?

次に、2 番目のステートメントで列を選択しているだけなのでid、なぜアクセスできると思いますnameか?

第 3 に、クエリをorder by句なしで最初の行に制限することはほとんど意味がありません。SQL は、その句がなくても、任意の順序で自由に行を返すことができます。

テーブルの最初の ID の名前が本当に必要な場合は、次のようになります。

select name from foo order by id limit 1

トリックを行う必要があります。を行うことが理にかなっているユースケースはほとんどありませんselect *

4 行目が必要な場合は、次のようにします。

select name from foo order by id limit 1 offset 3

詳しくはこちらをご覧ください。

于 2012-09-04T05:01:56.593 に答える
2

クエリに追加LIMIT 1します。次に例を示します。

SELECT * FROM foo LIMIT 1
于 2012-09-04T05:00:39.890 に答える