我正在使用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
但我想使用通配符。
答案 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 || '%'