2017-03-15 4 views
0

GUID를 사용하여 내 sqlite 테이블의 특정 행을 반환하려고합니다. SELECT ID FROM Reference 통해 모든 행을 반환 할 때sql.js를 사용하는 SELECT GUID가 결과를 반환하지 않습니다.

표 "참조"는 I 쉼표로 구분 소수 (더한 수 (아마 제로로 GUID 값을 얻을

CREATE TABLE "Reference" (`ID` GUID, [...], PRIMARY KEY(`ID`)) 

로서 정의 됨)은 이전에 하나의 누락 마지막 블록), 예 내 결과 GUID 중 하나는 20,129,73,9,133,47,79,7,80,130,247,254,95,40,35,29입니다.

이제이 GUID를 사용하여 전체 행을 선택하려고해도 어떤 결과도 얻지 못합니다.

예 쿼리 :

SELECT * FROM Reference WHERE ID = '20,129,73,9,133,47,79,7,80,130,247,254,95,40,35,29' 

또한, 이미 진수 또는 ASCII 값을 소수점 이하 자릿수를 변환 시도하고 대신을 사용 - 성공하지 그러나.

+1

무엇'대해서 typeof Reference' FROM (ID)가 당신을 줄 SELECT는 무엇입니까? – dan04

+0

''blob''을 반환합니다. –

+0

귀하의 반응은 저에게 셀 가치를 되 찾는 다른 방법으로 놀아 보도록 영감을주었습니다. 그래서 나는 각각의 16 진수 값을 반환하는''Reference에서 SELECT hex (ID) ''를 시도했다. 또한, "SELECT * FROM Reference WHERE hex (ID) = '14814909852F4F075082F7FE5F28231D '''를 사용하여 개별 행을 선택할 수 있습니다. 그러나, 나는 여전히 행을 검색하는 "16 진수가 아닌"방법에 관심이있을 것입니다. –

답변

1

GUID가 16 바이트 얼룩으로 저장되어 있고 JavaScript 코드가이를 바이트를 나타내는 정수 배열로 변환하는 것처럼 보입니다. 하지만 SQLite는이 BLOB 리터럴에 사용하는 구문은 X-접두사 16 진수 문자열은 다음과 같이이다 :

SELECT * FROM Reference WHERE ID = X'14814909852F4F075082F7FE5F28231D' 
+0

x 접두사가 붙은 문자열을 사용하여 행을 선택하려고 시도했으며''Error : unrecognized token : [...]''오류가 있습니다. 잘못된 형식의 GUID/16 진수 값을 사용하는 것 같습니다. 그 점을 지적 해 주셔서 감사합니다! –