sqlite3 запрос с необязательным символом - PullRequest
0 голосов
/ 13 июля 2020

У меня есть две таблицы:

  • table1 имеет столбец с именем paths1 , который содержит пути в формате dir / file или / dir / file
  • table2 имеет столбец с именем paths2 , который также содержит пути в формате dir / file или / dir / file

Duplicate пути можно найти в обеих таблицах (уникальное ограничение находится в другом столбце). Я пытаюсь найти пути в table1.paths1 , которых нет в table2.paths2 . Моя проблема - это '/', который иногда существует перед путем (например, в случае /dir/file).

Для этого я использую:

SELECT count(*) FROM (
SELECT DISTINCT paths1
FROM table1
WHERE '/'||paths1 NOT IN ( SELECT DISTINCT paths2 FROM table2));

Как я могу сделать '/' необязательно?

1 Ответ

0 голосов
/ 13 июля 2020

Используйте TRIM и удалите разделители начального / конечного пути из путей в обеих таблицах, если они существуют.

SELECT COUNT(*) AS cnt
FROM table1 t1
WHERE NOT EXISTS (SELECT 1 FROM table2 t2
                  WHERE TRIM(t1.paths1, '/') = TRIM(t2.paths2, '/'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...