在布尔搜索中过滤掉电子邮件地址

时间:2012-09-21 12:28:25

标签: mysql

我正在构建一个带照片的数据库。 通过使用布尔搜索,我可以获得所用搜索(短语)的正确图像。

现在我有这个问题: 在许多描述中,标记了人或主题的电子邮件地址。喜欢 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'

如何过滤掉包含@符号的搜索词?

1 个答案:

答案 0 :(得分:1)

我认为您可以尝试使用REGEXP运算符,在您的原因中它看起来像:

SELECT *
FROM archief
WHERE
    description REGEXP '[^@]telenet' OR
    keywords REGEXP '[^@]telenet'

此查询应在telenet@字段中选择包含description字符串且不在keywords之前的所有记录。