2012-09-04 3 views
2

SQL 쿼리에보다 구체적으로 코드를 작성하려고합니다.SQLite에서 단 하나의 항목을 선택하는 방법은 무엇입니까? (localStorage)

다음 코드가 작동하며 결과를 사용할 수 있습니다. 그러나 아마 가장 효율적인

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 

. 나는 그 질문이 잘못되었다고 생각한다.

감사합니다.

+1

id를 선택했지만 결과물 이름이 – house9

답변

1

음 : 다음은 예입니다?

둘째, 두 번째 문장에서 id 열만 선택했기 때문에 왜 name에 액세스 할 수 있다고 생각하십니까?

셋째, order by 절이 없으면 쿼리를 첫 번째 행으로 제한하는 것이 의미가 없습니다. SQL은 해당 절없이 원하는 모든 순서로 행을 반환 할 수 있습니다.

당신은 정말 같은 첫 번째 테이블의 ID, 뭔가의 이름하려는 경우 : 트릭을 할해야

select name from foo order by id limit 1 

합니다. select *을 사용하는 것이 유용한 경우는 거의 없습니다.

select name from foo order by id limit 1 offset 3 

은 자세한 내용은 here를 참조하십시오 : 네 번째 행을 원하는 경우

, 같은 것을 사용합니다.

+0

그것은 작동합니다! 고마워. 저는 여전히 SQL의 논리를 이해하고 있습니다. 예제를 읽는 것만으로도 학습은 저를 위해 조금 어렵습니다! 설명해 주셔서 감사합니다. :) – ricardolobo

1

LIMIT 1을 검색어에 추가하십시오. 당신이은 ID가 1 인 행을 않은 시작을,

SELECT * FROM foo LIMIT 1 
+0

4 번째 행을 선택하려면 어떻게해야합니까? LIMIT 4를 사용해야합니까? 아니면 직접적인 방법이 있습니까? – ricardolobo

+0

@ricardolobo는'LIMIT 3, 1'을 사용합니다 (첫 번째는 오프셋, 두 번째는 한계 임) –

+0

Daniil! :) – ricardolobo

관련 문제