sql - 让一个SQL请求更高效更整洁?

标签 sql database ms-access

我有以下 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/

相关文章:

c# - Microsoft Access 2007 连接

sql - 如何在 MS Access 中正确使用 "Not Equal"?

sql - 仅在另一个查询返回时删除行

MySQL Workbench 缺少右括号

sql - 如何使用 INSERT ... ON CONFLICT ... 更新所有列?

database - 逻辑 : Best way to sample & count bytes of a 100MB+ file

mysql - 选择是否并更新问题

php - 是否可以从删除中获取结果?

python - 一些疯狂的代码和疯狂的数据。在 mysql 数据库中插入行(python)

vba - BeforeUpdate 问题 - 运行时(错误 2115)