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

MySQL: Column Contains Word From List of Words(MySQL:列包含单词列表中的单词)
本文介绍了MySQL:列包含单词列表中的单词的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个单词列表。让我们假设它们是‘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和%通配符,但我想知道是否有针对这种情况的单一查询方法?

推荐答案

编辑:

类似以下内容:

SELECT * FROM yourtable WHERE content LIKE '%apple%' OR content LIKE '%orange%'

您可以循环使用单词来创建WHERE子句条件。

例如:

$words = array( 'apple', 'orange' );
$whereClause = '';
foreach( $words as $word) {
   $whereClause .= ' content LIKE "%' . $word . '%" OR';
}

// Remove last 'OR'
$whereClause = substr($whereClause, 0, -2);

$sql = 'SELECT * FROM yourtable WHERE' . $whereClause;

echo $sql;

Output:

SELECT * FROM yourtable WHERE content LIKE "%apple%" OR content LIKE "%orange%" 

这篇关于MySQL:列包含单词列表中的单词的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Execute complex raw SQL query in EF6(在EF6中执行复杂的原始SQL查询)
Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)