2015-01-07 2 views
0

식을 기반으로 중복 된 쿼리를 삭제하려고합니다. 내가 사용하려고하는 표현은 이것입니다.MySQL Delete Query with RLIKE Expression

category-23023 또는 category-link-2398 또는

category-link-url-58693435는 기본적으로, 나는 - 대시 기호 앞에 문자열이 대시 마지막 숫자 뒤에 알파벳이 포함되어 있는지 여부를 확인하는 식을해야합니다. 이것은 내가 마지막으로 시도한 것이며 작동하지 않는 것입니다.

delete 
from core_url_rewrite using core_url_rewrite, 
    core_url_rewrite e1 
where core_url_rewrite.url_rewrite_id > e1.url_rewrite_id 
    and core_url_rewrite.target_path = e1.target_path 
    and core_url_rewrite.target_path RLIKE '^[a-z]+\\-[0-9]$'; 

답변

1

시도해보십시오.

delete 
from core_url_rewrite using core_url_rewrite, 
    core_url_rewrite e1 
where core_url_rewrite.url_rewrite_id > e1.url_rewrite_id 
    and core_url_rewrite.target_path = e1.target_path 
    and core_url_rewrite.target_path RLIKE '^[a-z]+\\-*.*\\-[0-9]+$'; 
+0

regexp와 rlike는 동의어입니다. –

+0

예 ... mysql 문서에서 방금 보았습니다. 감사. – Riad

+0

감사합니다. 방금 시도했지만'오류가 발생했습니다 '반복 연산자 피연산자가 올바르지 않습니다.'regexp에서 ' – MagentoMan

0

Riad의 코드를 약간 변경하여이 기능을 사용할 수 있었던 것으로 보입니다.

delete 
from core_url_rewrite using core_url_rewrite, 
    core_url_rewrite e1 
where core_url_rewrite.url_rewrite_id > e1.url_rewrite_id 
    and core_url_rewrite.target_path = e1.target_path 
    and core_url_rewrite.target_path RLIKE '[a-z]+\\-[0-9]+$'; 
+0

'SELECT 'sdf-js00-009'RLIKE '[a-z] + \\ - [0-9] + $';'는 문자열과 일치해야하지만, 당신이 제공 한 해결책은 아닙니다. – Riad

+1

Riad를 지적 해 주셔서 감사합니다! – MagentoMan

+0

도움이 되니 기쁩니다. 천만에요. :) – Riad