2016-07-31 3 views
2

우리는 데이터베이스를 설계했지만 디자인에 버그가 있었고 현재 큰 문제가되고 있습니다. 어떤 식 으로든 쿼리와 비슷할 수 있습니다. 내 데이터베이스 내 위치 테이블에서MYSQL 질의 만 키워드 일치 사례

, 나는 다음과 같은 몇 가지 레코드의이 :

E2 
W3,SE2,SW13,E2 
SE2 
W3,E2 
W3,SE2 

가 지금은 E2을 포함하는 모든 결과를 가져올합니다. like을 사용하면 SE2이 나오고 싶지 않습니다.

는 기본적으로, 나는 그것이 ,에 의해 분리 된 다른 값을 가진 행의 경우에도 E2을 찾고 싶어요.

내가 SE2을 검색하면 다른 값이 ,으로 분리 된 행에 있더라도 결과적으로 E2을 얻고 싶지 않습니다.

기본적으로인데, ,으로 구분 된 다른 값을 가진 행에 있더라도 을 찾고 싶습니다.

+0

@FirstOne 그것이 쉼표 sepration으로 이해 –

+0

@FirstOne을의 작동하지 않습니다하지만 난 쉼표 sepration –

+1

@FirstOne 내 데이터로 작업하고 예 그게 무슨의 I) –

답변

1

입니다 FIND_IN_SET을 사용하면 더 편리합니다.

내가 그 쿼리를 사용하면 실제로 데이터는 쉼표 sepration 함께 저장됩니다 0
SELECT * FROM your_table WHERE FIND_IN_SET('E2', your_column) > 0; 
+0

그것이 도움이 될 수있다. 나 PHP 에서이 쿼리를 실행하는 방법! –

+0

새로운 질문을하는 것이 가장 좋습니다. 나는 먼저 구문을 사용하는 것이 좋습니다 (일반적인 LIKE 쿼리와 다르지 않습니다.) - 그러면 멈추는 지 물어 봅니다! 이미 시도한 것을 포함하십시오. – rjdown

0

당신은 SE2 쿼리의 일부 또는 조건

select * from my_table 
where my_column = 'E2' 
or my_column like '%,E2' 
or my_column like 'E2,%' 

으로 시도 할 수는

select * from my_table 
where my_column = 'SE2' 
or my_column like '%,SE2' 
or my_column like 'SE2,%' 
or my_column like '%,SE2,%' 

또는 쉼표로 구분 된 값, 당신이 '로 저장 기록을 위해 일반적으로

select * from my_table 
where my_column = 'your_key' 
or my_column like '%,your_key' 
or my_column like 'your_key,%' 
or my_column like '%,your_key,%' 
+0

만약 내가 SE2를 검색한다면 거대한 데이터베이스를 가지고 있는데 첫 번째 레코드에는 E2가 있고 두 번째 레코드에는 W3, SE2, SW13, E2가 있고 예를 들어 정확한 단어를 찾고 싶다. 세 번째 레코드가 SE2라면 SE2와 일치하기 때문에 두 번째와 세 번째 레코드를 찾아야합니다 –

+0

대답을 업데이트했습니다 .. 유용합니다 희망은 유용합니다 – scaisEdge

+0

5 분이 댓글입니다 .. 5 분 후에 댓글을 편집 할 수 없습니다 .. .. 대답은이 제한없이 편집 될 수 있습니다 .. 그리고 새로운 .. 편집 가능할 때마다 답변을 편집 할 수 있습니다 – scaisEdge