2016-09-09 8 views
-3

그래서 'foo'라는 단어가 들어있는 URL을 찾아야합니다. SELECT * FROM table WHERE url = regex과 같은 정규식을 사용하여이 작업을 수행하려고합니다. URL은 https//... 또는 http://....이며 예를 들어 URL에 foo이라는 단어를 찾아야합니다. 내가 실제로 원하는 것은 호스트 이름이나 경로에 foo이 있는지 확인하는 정규식입니다. 도와 주셔서 감사합니다!Sql select url regex

편집 :

LIKE '%foo%' 내 테이블에 매우 느리기 때문에 내가 정규식 빠른 대안을 찾고 싶어요.

+1

질문에 표 구조를 추가하십시오. – chris85

+0

'id''url''기타 중요하지 않은 정보''img' –

+1

그것들은 구조체가 아니라 컬럼입니다. 열 유형과 색인을 추가하십시오. 또한 매우 느린, 초, 분 등을 정의하십시오. – chris85

답변

0

LIKE% 와일드 카드 연산자를 사용하십시오.

SELECT * FROM table WHERE url LIKE '%foo%'

+0

이미 내 테이블의 차원에 대해 쿼리를 실행하는 데 2-3 분이 걸립니다 ... –

+2

글은 원래 게시물에 포함 된 정보의 엄청난 유용 할 것입니다. 귀하의 질문에 "foo"가 포함 된 URL을 얻는 방법을 찾고있는 것이 아니라, '좋아요'에 대한보다 빠른 대안을 찾고 있습니다. 요점은 SQL의 문자열 데이터에서 와일드 카드 일치를위한 매우 효율적인 방법이 없다는 것입니다. 테이블에'FULLTEXT INDEX'가 있는지 확인하십시오. 일반적으로 말하자면, 전체 테이블 스캔은 MySQL에서 눈살을 찌푸리게됩니다. – Santi