【问题标题】:Finding rows in MySQL Table that do NOT have certain text在 MySQL 表中查找没有特定文本的行
【发布时间】:2014-02-26 10:45:58
【问题描述】:

假设我想在包含文本“There were many bison”的数据库表中查找一篇文章使用 phpMyAdmin,我可以导航到 Search,选择一个字段,然后选择 Like %...%,它会选择包含这些词的文章。

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

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

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

因此,如果我的数据库表中有关于 600 个物种的文章,并且我想知道哪些文章不包含生态部分,我可以简单地搜索所有没有特定 div 或类似内容的行 (例如 [h2]Ecology[/h2] - 虽然带有真实标签,而不是括号)。

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

谢谢。

【问题讨论】:

    标签: mysql phpmyadmin


    【解决方案1】:

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

    例如: 表文章: -article_id(主键) -文章 -category_cat_id(引用 cat_id 的外键) 表类别 - cat_id(主键) -cat_name 一个查询来选择所有属于生态类的文章: 从文章中选择 * 左连接类别 ON article.category_cat_id = category.cat_id WHERE cat_name != 'ecology'(如果要选择除具有生态类别的文章之外的所有文章) 另一种选择是 WHERE cat_name = 'ecology'(如果要选择所有生态类别的帖子)

    【讨论】:

    • 我正在考虑做这样的事情。主要问题是我正在从事的项目数量众多。我想知道保留这样一张桌子是否会变得过于繁琐。这仍然是一种选择,但我意识到如果我可以通过简单的搜索操作确定哪些文章仍需要研究,生活会轻松得多。
    【解决方案2】:

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

    【讨论】:

    • 哇,谢谢你的链接。我看到了 NOT REGEXP 选项,但不明白它的含义。我很高兴在该页面上看到这么多示例……但是,我还没有弄清楚如何进行最简单的取消搜索。如果我想在不包含此字符串的字段中查找所有内容,谁能告诉我我会输入什么代码?:
    • DUH...我找到了答案;我以为我试过了,但没有用,但我又试了一次。我想这太简单了,令人难以置信。 ;)
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签