我有一张表格,如下表:
ID | Order | Creator_ID | text
-----+-----------+------------+------------------------
1 | 1 | 3 | first part
2 | 2 | 3 | second part
3 | 5 | 1 | first part
4 | 7 | 1 | second part
5 | 12 | 2 | first part
6 | 13 | 1 | second part
我有一个完整的句子字符串,如first part second part
,我想知道这个句子是否存在于表格中。我不知道这句话应该在哪里拆分,以便制作两个句子,比如数据库中的句子。我想这个问题可以使用LIKE '%...' OR LIKE '...%'
SQL命令解决,但这次搜索还有更多条件。
我还有两个搜索条件,1。此查询返回的两行应该具有相同的Creator_ID
s 2. Order
句子第一部分的列应该具有{{1}第二句减去1。
一个例子:
我在表中搜索Order
字符串的存在。
first part second part
,第一部分的Creator_ID
为1,第二部分的Order
为2,1 = 2 - 1.它们应出现在结果中。Order
但它们不会连续Creator_ID
s。Order
s 第1行和第4行或第3行和第6行等其他组合在Creator_ID
和Creator_ID
测试时失败,因此此SQL查询只应返回第一行和第二行。
应该如何编写此SQL查询?
答案 0 :(得分:2)
您可以使用自联接来识别符合条件的行对:
select s1.id as id1, s2.id as id2
from sentences s1 join
sentences s2
on s1.creator_id = s2.creator_id and
s1.order = s2.order - 1
where s1.text like '%first part%' and
s2.text like '%second part%';