sql - MySQL:列包含单词列表中的单词

标签 sql mysql innodb

我有一个单词列表。假设它们是“Apple”、“Orange”和“Pear”。我在数据库中有这样的行:

------------------------------------------------
|author_id   |  content                        |
------------------------------------------------
| 54         | I ate an apple for breakfast.   |
| 63         | Going to the store.             |
| 12         | Should I wear the orange shirt? |
------------------------------------------------

我在 InnoDB 表上寻找将返回第一行和第三行的查询,因为 content 列包含我列表中的一个或多个单词。我知道我可以为列表中的每个单词查询一次表,并使用 LIKE 和 % 通配符,但我想知道是否有针对这种事情的单一查询方法?

最佳答案

MySQL(我相信是 5.0 版本)增加了在 SQL 中使用正则表达式的能力。

checkout :http://www.brainbell.com/tutorials/MySQL/Using_MySQL_Regular_Expressions.htm

SELECT author_id, content
FROM AuthorTableName
WHERE content REGEXP 'Apple|Orange|Pear'
ORDER BY author_id;

关于sql - MySQL:列包含单词列表中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4688643/

相关文章:

也许是 SQL Server PIVOT?

sql - 如何将带有日期(字符串)的列转换为仅在pyspark中的日期

php - 如何在具有一对多关系的表上执行内部连接?

php - Zend Framework 数据库插入问题

sql - 如何从数据库中选择数据并通过WCF服务返回它?

MySQL 对多个键出现的连接操作

PHP MySQL 隐藏超过 1 分钟的行

mysql - InnoDB:(PK,col1,col2,col3)形式的覆盖索引是否多余?

具有非标识关系的 MySQL 外键

mysql - 在 MySQL 中选择并更新几行而不发生冲突