2011-07-18 2 views
1

LIKE가 행의 모든 ​​필드와 일치 할 수있는 쿼리를 만들려고합니다.SQL : LIKE를 사용하여 검색이 행의 값과 일치하면 행을 반환하십시오.

다른 말로하면 각 LIKE 조건과 일치하도록 명시 적으로 열 이름을 설정하고 싶지는 않습니다. 이 같은

,이 같은

SELECT * FROM mytable WHERE any_field_value LIKE 'str%' 

하지 :

SELECT * FROM mytable WHERE col_a LIKE 'str%' OR col_b LIKE 'str%' 

등등.

확실히, 드문 요청이 아닙니까? 누군가 내게 빛을 보여줄 수 있습니까?

답변

1

전체 텍스트 인덱싱을 사용하지 않는 한 동적 SQL을 사용해야 만 수행 할 수 있습니다.

당신은 내가 읽기를 제안, 그렇게하기 전에

: The Curse and Blessings of Dynamic SQL (가정 SQL 서버)

2

사실 그것은 사실이 아니다. 전체 텍스트 인덱싱을 설정했다고 가정하면 수행 할 수 있습니다. 다시 한번 우리는 SQL 서버를 다루고 있다고 가정합니다. 이 링크 된 문서에서 명확하지 않기 때문에

http://msdn.microsoft.com/en-us/library/ms142488.aspx

난 당신이 테이블에 전체 텍스트 인덱싱 된 열을 모두 검색하기 위해 열 이름보다는 * 지정할 수 있다는 것을 지적한다.

편집 : 전체 텍스트 검색은 mysql에서도 가능합니다. *가 사용할 수 있는지 여부는 분명하지 않습니다.

+0

+1. 전체 텍스트 인덱싱이 제외되었다고 가정합니다. –

+0

Thanks @Telerian, 저는 MySQL을 사용하고 있습니다 ...하지만 동적 SQL이나 전체 텍스트 인덱싱에 대해 많이 알지 못하기 때문에 "쉽게 할 수 없습니다"라는 대답을 고수 할 것입니다. :) – Ben

+0

나를 위해 mysql 태그를 추가하는 좋은 이유. ;) –

관련 문제