我有以下 SQL 查询:
SELECT Phrases.*
FROM Phrases
WHERE (((Phrases.phrase) Like "*ing aids*")
AND ((Phrases.phrase) Not Like "*getting*")
AND ((Phrases.phrase) Not Like "*contracting*"))
AND ((Phrases.phrase) Not Like "*preventing*"); //(etc.)
现在,如果我使用 RegEx,我可能会将所有的 Nots 聚成一个大的(getting|contracting|preventing),但我不确定如何在 SQL 中执行此操作。
有没有办法更清晰/优雅地呈现此查询?
最佳答案
只需删除多余的东西并使用一致的命名约定,您的 SQL 看起来就更酷了:
SELECT *
FROM phrases
WHERE phrase LIKE '%ing aids%'
AND phrase NOT LIKE '%getting%'
AND phrase NOT LIKE '%contracting%'
AND phrase NOT LIKE '%preventing%'
你说的是正则表达式。一些 DBMS 确实有它:MySQL、Oracle...但是,选择任何一种语法都应该考虑查询的执行计划:“它有多快”而不是“它看起来有多好”。
关于sql - 让一个SQL请求更高效更整洁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2042773/