我之前问了这个问题:
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的条目文本的记录。
示例数据:
1 |这是一条线 2 |这是一条线,这是另一条线 3 |随机 4 |随机这是一行
现在,假设文本非常长,而不是短文本条目,就像1000个字符一样。假设我想查找数据库中包含记录1中文本的所有记录。这是唯一的方法来说LIKE '%this is a line%'
吗?是否有办法通过给出记录的ID?
答案 0 :(得分:2)
检查INSTR(haystack, needle)函数,并将其与0进行比较。如果为0,则haystack
不包含needle
。您也可以使用LIKE
运算符和通配符(%
)来执行此操作,但您必须转义%
符号。
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以使用函数LOCATE
。如果1字符串存在于另一个字符串中,则会得到一个数字0。
该功能为LOCATE(substr,str)
。
有关详细信息,请查看here