2011-01-03 2 views
1

되지 않음이 :
"height like '%1%' or height like '%2%' or height like '%5%'" 

하나 이상을 건조하기 위해 노력하고, 같은 SQL 조건에서 하나 개의 속성에 대한 바인딩

단지이 하나 개의 속성에 대한 바인딩이 많이 있습니다 말.

순서가 맞지 않아 무작위입니다.

어떻게이 SQL을 단순화 할 수 있습니까? 이 같은

뭔가 :

"height like ('%2%' or '%1%' or '%5%') 

코드는 예입니다.

나는 주입 제안을 찾고 있지 않다.

+0

어떤 데이터베이스와 버전이 있습니까? –

+1

코드를 편집하여 첫 번째 SQL 문을 이해하지 못했습니다. (내가 잘못하면 고쳐야한다.) – egrunin

+0

그래, 내가 뭔가를 놓쳤다 고 생각했다 :) – s84

답변

1

좋아해서는 IN에 해당하는 것이 없습니다. 귀하의 첫 번째 방법은 올바른 접근 방식입니다.

WHERE (height LIKE '%foo%' OR height LIKE '%bar%' OR height LIKE '%baz%') 

이 작업은 느려집니다. 대신 전체 텍스트 검색을 볼 수 있습니다.

+0

맞아, 솔로는 영웅에 있고 스핑크스도 있지만 솔로는 히로쿠가 사람들에게 사용하기를 원하는 것처럼 보인다. – s84

0

음, 옵션으로 SQL을 사용하면 문제가 해결 될 것이라고 생각합니다. 에서

높이 ('% 2 %', '% 1 %', '% 5 %')

이것은 당신의 변수는 항상 값을 가지고 있으므로 기본적으로는 DB에 유효한 값이 있는지 확인합니다 가정!

+0

[높이 '% 2 %']은 [height = '% 2']와 동일하지 않습니다. – Ronnis

+0

차이점은 무엇입니까? – s84

+0

네가 맞아, 잠시 동안 나는 PHP에 대한 생각을 가지고 있었고 퍼센트는 서버 측 언어의 일부였다. – Limey