SQL:在特殊列中查找与其他同一表类似的行

时间:2017-06-14 08:01:17

标签: sql sqlite

我正在使用SQLITE来运行此查询:

SELECT * FROM phrases1, phrases2 WHERE phrases1.word LIKE ('%' +phrases2.word+ '%')

但不起作用。 两个表phrase1,phrase2是相同的并且具有列名字,我想按行列过滤第一个表,其中word列类似于第二个表的word列。虽然这有效:

SELECT * FROM phrases1, phrases2 WHERE phrases1.word LIKE phrases2.word

但我想使用通配符。

1 个答案:

答案 0 :(得分:2)

用于字符串连接的SQLite运算符是||而不是+

SELECT * FROM phrases1, phrases2
WHERE phrases1.word LIKE '%' || phrases2.word || '%'

此外,我不知道在你的LIKE表达式周围有括号的效果是什么,但你不需要它们。但是你应该使用显式连接编写查询,更好的是使用别名:

SELECT *
FROM phrases1 p1
INNER JOIN phrases2 p2
    ON p1.word LIKE '%' || p2.word || '%'