在MySQL表中查找没有特定文本的行

时间:2014-02-03 02:59:52

标签: mysql phpmyadmin

假设我想在数据库表中找到包含文本“有很多野牛”的文章使用phpMyAdmin,我可以导航到搜索,选择一个字段,然后选择Like%...%,它会选择包含这些词的文章。

我想知道是否有办法找到所有不包含该字符串的行。

让我解释一下我的更大目标。我正在撰写关于许多动物物种的文章,这些物种分为分类,分布,生态等部分。每个部分都可以被认为是一个独立的文章,我很想为这些部分制作独特的表格。然而,那将是一场后勤噩梦;我需要数百张桌子。

所以我只写一篇长篇文章,每个部分都以这样的内容开头:

因此,如果我在我的数据库表中有大约600种物品的文章,并且我想知道哪些文章不包含生态部分,我可以简单地搜索没有特定div的所有行,或类似的东西(例如[h2] Ecology [/ h2] - 虽然有真正的标签,但没有括号。)

有没有办法用phpMyAdmin,MySQL Workbench(我今天下载和安装)或其他工具做到这一点?

感谢。

2 个答案:

答案 0 :(得分:1)

一种解决方案是在数据库上创建类别表,然后为每篇文章分配一个类别。这样您就可以创建一个查询来选择所有具有您想要的特定类别的文章。

example would be :
 table articles:
        -article_id (primary Key)
        -article
        -category_cat_id (foreign Key that references cat_id)

 table category
         - cat_id (primary Key)
         -cat_name

a query to select all the articles with the categry of lets say ecology: 
SELECT * FROM articles
LEFT JOIN category
ON articles.category_cat_id = category.cat_id
WHERE cat_name != 'ecology'(if you want to select all the articles except those with a ecology cateogry)

another alternative is 
WHERE cat_name = 'ecology'( if you want to select all posts with the category of ecology)

答案 1 :(得分:1)

你可以在SQL中使用NOT REGEX http://dev.mysql.com/doc/refman/5.1/en/regexp.html