如何判断MySQL中的另一个文本元素中是否包含一个字符串

时间:2012-06-15 20:52:37

标签: mysql

我之前问了这个问题:

How to get delta between two text items

但我还需要更多的二元答案。也就是说,有没有办法判断一个文本条目是否包含另一个文本条目。再举例:

This is a line.

This is a line.  And another.

在MySQL中是否有一种简单的方法可以告诉第一种包含在第二种中?这两个项都是text类型的列中的条目。

更新:

我的表格看起来像这样

id INT, 我的文字

所以,我真正想做的是编写一个回答以下问题的查询:

在此表中查找mytext包含在mytext_for_another_record中的所有记录,其中id = SOMENUMBER。

也许更好的放: 查找id = 123的所有记录,mytext(用于id 123)包含在记录中。

所以我正在扫描整个表格,以查找包含id = 123的条目文本的记录。

示例数据:

id |文本

1 |这是一条线 2 |这是一条线,这是另一条线 3 |随机 4 |随机这是一行

现在,假设文本非常长,而不是短文本条目,就像1000个字符一样。假设我想查找数据库中包含记录1中文本的所有记录。这是唯一的方法来说LIKE '%this is a line%'吗?是否有办法通过给出记录的ID?

3 个答案:

答案 0 :(得分:2)

检查INSTR(haystack, needle)函数,并将其与0进行比较。如果为0,则haystack不包含needle。您也可以使用LIKE运算符和通配符(%)来执行此操作,但您必须转义%符号。

答案 1 :(得分:0)

这应该返回包含给定文本的所有行:

SELECT id, line FROM lines WHERE line LIKE '%This is a line.%';

小提琴是here

答案 2 :(得分:0)

您可以使用函数LOCATE。如果1字符串存在于另一个字符串中,则会得到一个数字0。

该功能为LOCATE(substr,str)。 有关详细信息,请查看here