2013-10-26 3 views
1

주어진 인덱스에서 데이터를 검색하고 싶습니다.mysql 데이터베이스의 인덱스로 데이터 검색

SELECT * FROM test WHERE user='bertrand' 

이 같은 색인 할 때 :하지만

'index'=1 

그것이 제공을

CREATE TABLE `test` (
`index` int(11) NOT NULL AUTO_INCREMENT, 
`user` text NOT NULL, 
PRIMARY KEY (`index`), 
UNIQUE KEY `index` (`index`) 
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1 

내가 이런 식으로 사용자로부터 데이터를 검색 할 수 있습니다 : 다음은 데이터베이스의 SQL 코드입니다 나 아무것도! 내가 뭘 잘못하고 있는지 이해가 안되는데, 도움을 주시면 감사하겠습니다.

+0

: # 1064 - SQL 구문에 오류가 있습니다. 올바른 구문을 찾으려면 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. 'index = 1 LIMIT 0, 30'1 번 줄 근처에서 사용하십시오. – user2216280

+0

색인은 예약어입니다. backticks (')를 추가하십시오. –

+0

index는 예약어입니다. . 해당 열의 이름을 바꿉니다. –

답변

1

그냥 따옴표를 제거하십시오. 이제는 'index'가 1이 아니기 때문에 아무것도 반환하지 않습니다. 따옴표로 묶은 값을 감싸는 경우 문자열 값으로 간주됩니다.

SELECT * FROM test WHERE index=1 

편집 : 그냥 눈치 지수는 예약 된 키워드입니다. 또한 해당 열의 이름을 바꿔야합니다.

+0

이름을 바꾸면 매력처럼 작동합니다! 덕분에 많은 사람들 – user2216280

0

당신은 당신의 쿼리에 인덱스를 사용할 수 있지만이 예약 된 키워드입니다, 당신은 역 따옴표하지 singlequotes에 포장해야합니다 : 그것은 나에게 내가 따옴표를 제거하려면이 오류를 제공

SELECT * FROM test WHERE `index`=1 
관련 문제