我正在构建一个带照片的数据库。 通过使用布尔搜索,我可以获得所用搜索(短语)的正确图像。
现在我有这个问题: 在许多描述中,标记了人或主题的电子邮件地址。喜欢 my.name@telenet.be 现在,当我想找到公司Telenet 的图像时,我会获得包含提供商电子邮件地址的所有记录。谁对我的搜索毫无影响。
以下是我的搜索示例:
SELECT ID,auteur, title, datetaken, description,
keywords,thumbnail,URL,rel_date,showa,initialen,type
FROM archief
WHERE MATCH(description, keywords) AGAINST(' +telenet ' IN BOOLEAN
MODE) AND rechten <> '0' AND showa = '1' AND type >= '2' AND rel_date
<= '20120921' ORDER BY datetaken desc LIMIT 60'
in 'where clause'
如何过滤掉包含@
符号的搜索词?
答案 0 :(得分:1)
我认为您可以尝试使用REGEXP运算符,在您的原因中它看起来像:
SELECT *
FROM archief
WHERE
description REGEXP '[^@]telenet' OR
keywords REGEXP '[^@]telenet'
此查询应在telenet
或@
字段中选择包含description
字符串且不在keywords
之前的所有记录。