2011-03-27 2 views
1

문자열에 부분적으로 일치하는 데이터베이스에서 행을 선택하는 쿼리를 PHP에서 작성하려고합니다. SQLite에서 역순으로 같은 조건으로 쿼리를 선택하십시오.

더 나은는 예를 통해 설명 :

내 DB 값 'ABCD'로, numberString라는 필드가 말. "123abcd"주어진 데이터베이스의 해당 행 필드를 반환하는 쿼리를 작성하고 싶습니다.

SELECT mood 
    FROM USERS 
WHERE numberString like '%$giveNumberString'" 

$giveNumberString

(즉, 내가 찾아 할 문자열)

는하지만 두 numberString'%$givenNumberString'" 쿼리 주위를 위해 다른 방법 같아야들과 같이 일을 생각하는 기능 매개 변수입니다 예상했다. 이것을 할 수있는 방법이 있습니까?


확인 테이블은 다음과 같다 : "123abcd"주어진

id | username | numberString | mood 
------------------------------------- 
1 | myUsrNam | abcd   | happy 

이제 내가 원하는이, 그 사람의 분위기를 검색 할 수 있습니다. 다시 말해 ababd와 123abcd를 일치시키는 것입니다.

+1

질문을 이해하는 데 어려움을 겪고 있습니다. 예제 테이블 내용을 게시하고 검색 할 항목을 게시 할 수 있습니까? – Mat

+0

@Mat 나는 질문을 편집 해 봤어! 건배! – mixkat

+0

[전체 텍스트 검색] (http://www.sqlite.org/fts3.html)이 귀하의 요구 사항에 적합한 지 여부는 논란의 여지가 있습니다. 사용자가 더 나은 검색 방법을 배우는 것을 기대하는 것은 잘못이 아닙니다. - 쓰레기통, 쓰레기통. –

답변

4

나는 이것이 법적 구문 모르겠지만, 나를 추측을 해보자 : 당신이

SELECT mood from users where '$giveNumberString' like '%' || numberString || '%' 

를 시도?

+3

SQLite는 연결 연산자로'||'를 사용한다. '+'es를'||'로 바꾸면됩니다. 비록 당신은 단지 첫 번째 '%'가 필요하고 두 번째는 필요하지 않다고 생각합니다. – Martijn

+0

@Martijn, 이것을 지적 해 주셔서 감사합니다. 나는 그 대답을 편집했다. –

+0

@Martijn : 네,'+'가 유효하지 않았지만 ... 편집 된 답변은 괜찮아 보입니다. – Mat

관련 문제