0

我正在寻找使用innodb引擎在mysql中搜索特定单词的方法。考虑以下示例:

Text:
1.Card has two sides.
2.This is my card.
3.We have a car.
4.Car has good color.
5.This was my car.
6.The car is nice.

假设这些点是不同的行并且位于同一列“文本”下。我需要一个查询,该查询使用“like”提取带有“car”这个词的行,无论“car”这个词是在开头、中间还是结尾。请记住,“卡”不是必需的。

4

3 回答 3

2

用它

SELECT * FROM table WHERE name LIKE '%car' or name LIKE '%car %';
于 2013-03-21T08:14:19.553 回答
1

这里是..

SELECT * FROM table WHERE name LIKE '% car' or name LIKE 'car %' or name LIKE '% car %' or name like '% car.';

它将同时选择起始单词最后一个单词和单词之间

于 2013-03-21T13:03:28.577 回答
0

如果要包括“汽车”并排除“卡”,您可以搜索

SELECT Text FROM Table WHERE Text LIKE '% Car.%' or Text LIKE '% Car %';

那将要求始终有一个“。”。到底。您可以添加另一个

or Text LIKE '% Car';

如果您对此不确定。

如果这变得更复杂,您可能需要查看正则表达式。虽然通常较慢,但如果您的 LIKE... OR... 表达式变得过于复杂,它们会更快。您可能需要进行一些基准测试以找出最适合您的情况。

于 2013-03-21T08:11:15.577 回答