2013-05-01 2 views
0

함수를 사용하여없이이 mysql 쿼리 을 어떻게 작성할 수 있습니까?MySQL : 쿼리에서 함수 제거하기

SELECT word 
FROM dvddict 
    JOIN dvdrevdict 
    ON word=RIGHT(revword, 4) 
WHERE LENGTH(revword)=9; 

dvddict 테이블 컬럼 word을 가지며 dvdrevdict 테이블은 word 열의 정반대 인 열 revword을 갖는다. 나는 RIGHT()LENGTH() 기능을 모두 사용하지 않고 그것을 쓰고 싶다.

감사합니다.

+4

왜 기능을 제거 하시겠습니까? 다른 플랫폼으로 이동하려면? – Chris

+0

아마 추론은 지표를 활용하는 데 어려움을 겪고 있다는 것입니다. – Wiseguy

+1

물론 그들은 그렇습니다. 그러나 RIGHT (revword, 4)는 LIKE를 사용하여 다시 작성하더라도 색인을 사용하여 해결할 수 없습니다. 문제가 색인을 사용하여 색인하는 경우, 그는보다 복잡한 해결책을 사용해야합니다. 그러나 이것이 이것이 질문의 이유인지는 알 수 없습니다. –

답변

0

두 개의 열 revword_rightrevword_length에서 dvdrevdict을 추가 한 다음 트리거를 삽입하거나 업데이트 할 때 트리거를 채 웁니다.

불행히도 MySQL에는 함수 기반 인덱스가 없으므로 속도를 높이는 것이 목표 인 경우에도 도움이 될 수 있습니다.