我试图在多列文本和备忘录中搜索我不想看到的某些短语和黑名单短语。
假设如下表
stories:
id, title, author, publisher, content
前任。我想找到所有提到(在任何领域)“苹果”但将“苹果酱”列入黑名单的故事。
SELECT stories.id, [stories.title] & " " & [stories.author] & " " & [stories.publisher] & " " & [stories.memo] AS allMyText
FROM stories
WHERE ((([allMyText]) Like "*apples*" And ([allMyText]) Not Like "*applesauce*"));
如何在 where 子句中使用别名?我找不到有关该主题的任何文档:
1)这种方法可行吗?
2)替代方案是否意味着我将在每行迭代上执行多个字符串串联?
我无法在 where 子句中使用我的别名。
1.
这种方法可行吗?
当然,把它放在子查询中。
SELECT *
FROM
(
SELECT stories.id, [stories.title] & " " & [stories.author] & " " & [stories.publisher] & " " & [stories.memo] AS allMyText
FROM stories
) AS SUBQ
WHERE ((([allMyText]) Like "*apples*" And ([allMyText]) Not Like "*applesauce*"));
2.
另一种选择是否意味着我将在每行迭代中执行多个字符串串联?
是的,没错,替代方案是repeat表达方式。我不会让您厌倦这个替代方案的代码。
对于您的特定查询,您还可以使用此
SELECT stories.id, [stories.title] & " " & [stories.author] & " " & [stories.publisher] & " " & [stories.memo] AS allMyText
FROM stories
WHERE ([stories.title] Like "*apples*" OR [stories.author] Like "*apples*"
OR [stories.publisher] Like "*apples*" OR [stories.memo] Like "*apples*")
AND NOT ([stories.title] Like "*applesauce*" OR [stories.author] Like "*applesauce*"
OR [stories.publisher] Like "*applesauce*" OR [stories.memo] Like "*applesauce*")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)