Estou tentando fazer uma atualização de coluna no SQLite onde, se uma determinada string existir, atualize a coluna EXCEPT se ela corresponder a uma string específica. Observe que não posso usar uma instrução EXCEPT na consulta select combinada com UPDATE, pois aparentemente o SQLite não permite isso, caso contrário, o select funciona bem com EXCEPT.
SELECT * FROM AUDIT_INVENTORY_20250307
--UPDATE AUDIT_INVENTORY_20250307
--SET NAMING_CONVENTION = 'Persistent draft, test or training items older than 60 days'
WHERE
LOWER(title) GLOB LOWER('*Test*')
OR LOWER(title) GLOB LOWER('*Testing*')
OR LOWER(title) GLOB LOWER('*Delete*')
OR LOWER(title) GLOB LOWER('*Untitled*')
OR LOWER(title) GLOB LOWER('*Draft*')
OR LOWER(title) GLOB LOWER('*Training*')
AND LOWER(title) NOT GLOB LOWER('*Shovel Test*')
AND created > '2025/01/07'
Então, eu comentei a atualização enquanto testo a parte selecionada desta declaração, mas ela continua retornando strings que contêm
Shovel Test
Que eu quero especificamente excluir da atualização.
AND tem precedência sobre OR, então você precisa usar parátese para substituir a regra de precedência.
Ref: Resposta SO
Então, com base na consulta de exemplo acima seria
SAÍDA
Demonstração de violino