채택완료

sql에 관한 질문입니다^^

2014-12-02 (화) 17:55:25 3,808

wr_id     wr_50

1내용    111

6내용    666

7내용    777

8내용    888

select * from table where wr_50 in (666, 777);

여기 까지는 문제가 없죠

그런데

wr_id     wr_50

1내용    111|222

6내용    666|333

7내용    777|444

8내용    888|555

select * from table where wr_50 in (666, 777);

이러면 검색이 안되죠 ㅡ.ㅜ

wr_50에 | 문자를 기준으로 데이터 값이 들어 값니다. 이럴때 mysql select문 으로 해결할수 있는 방법이 있을까요?

|

답변 3개

채택된 답변
+20 포인트

like 문을 이용해서 OR 검색을 하시기 바랍니다.

select * from table where (wr_50 like '%666%' OR wr_50 like '%777%') 

666 777처럼 검색하려는 값이 무조건 데이터의 앞에 붙는다면

select * from table where wr_50 regexp('^​(666|777)\|'); 

이렇게 하면 되겠지만 검색어가 뒤에도 붙을수 있다면..

select * from table where wr_50 regexp('^​(666|777)\|') or wr_50 regexp('\|​(666|777)$')​;

이런식으로 하면 되지않을까 싶긴 합니다만.. 테스트는 못해봤습니다. ^^;;

2014-12-02 (화) 18:24:42

like문을 이용하면 되지 않을까요..?

답변을 작성하려면 로그인이 필요합니다.