2011-08-24 4 views
0

하위 쿼리 명령을 삭제SQLite는 내가 쿼리 다음 한

SELECT * FROM (
    SELECT * FROM pojmovi WHERE pojam LIKE '%og' 
) WHERE pojam NOT LIKE '%olog'; 

이 모든 '자책골'만에 종료 열 pojmovi에서 선택, 예상대로 작동하지 'olog는'지금, 나는 사람들을 삭제할에 결과는, 그래서 나는 같은 것을 시도하고있다 :

DELETE FROM (
    SELECT * FROM pojmovi WHERE pojam LIKE '%og' 
) WHERE pojam NOT LIKE '%olog'; 

을 그리고이 쿼리는 근처 "("원인 : 구문 오류 SQLite는이 어떻게 든 가능

답변

2

이것은 원하는대로 작동하지 않을 수 있습니다. 중간 쿼리 결과에서 삭제하려고 시도하면 의미가 없으므로 허용되지 않습니다. DELETE FROM 뒤에 실제 테이블을 지정해야합니다. 이런 식으로 뭔가 :

DELETE FROM pojmovi WHERE (pojam LIKE '%og') AND (pojam NOT LIKE '%olog'); 
+0

도움과 시간을 보내 주셔서 감사합니다. 'pojmovi 어디에서 삭제 pojmovi FROM ( \t SELECT * FROM ( SELECT ID를 ID WHERE pojam LIKE '%을 : 작은 번의 실험 후 , 나는 지금까지 내가 말할 수있는, 예상대로 작동이 쿼리를 내놓았다 og ' ) pojam NOT LIKE'% olog ' )' – realitylord

0

어떻게 "% LIKE하고 있기 때문에 그들이 (인덱스를 사용할 수 없기 때문에 쿼리가 느려집니다

DELETE FROM pojmovi WHERE pojam LIKE '%og' and pojam NOT LIKE '%olog'; 

SELECT * FROM pojmovi WHERE pojam LIKE '%og' and pojam NOT LIKE '%olog'; 

약 및

... ")