如何比较不同表中行中的子字符串

时间:2017-01-09 08:46:29

标签: sql sqlite

开始学习SQLite并且仍然在努力学习没有循环的事实。我已经找了一天我的问题的答案,但是找不到它。

我有2个表:表1和表2 表1有一个包含句子的列,例如“我喜欢苹果”。 Table2有几列:其中一列是Fruits(或Veggy ......),其中包含“apple”和“banana”。

我需要在Table1中添加一列,将食物分类。

使用以下表格时:

Table1:

Sentence
----------------
I like apples.
I hate bananas.
I love cucumber.

Table2:

fruits       veggies
------       --------
apple        cucumber
banana       tomato
grape

生成的table1应如下所示。

Table1:

Sentence              category
----------------      --------
I like apples.        fruits
I hate bananas.       fruits
I love cucumber.      veggies

1 个答案:

答案 0 :(得分:1)

category中有两列nameTable2是更好的设计。

无论如何,要添加列,请使用ALTER TABLE

ALTER TABLE Table1 ADD COLUMN category;

要查明特定句子是否属于特定类别条目,请使用LIKE

... WHERE Sentence LIKE '%apple%' ...

要分配类别,您必须使用correlated subquery

检查类别中的所有条目
UPDATE Table1
SET category = 'fruit'
WHERE EXISTS (SELECT *
              FROM Table2
              WHERE Table1.Sentence LIKE '%' || fruits || '%');

veggies相同。)