我的问题是这个;我在使用sql匹配部分查询时遇到问题。例如,我想要一个这样的声明:
SELECT * FROM {table} WHERE {table}.title LIKE '%term%';
术语是一些搜索词和表是我要查询的表。几乎在所有情况下,此声明都可以正常工当查询字词长于数据库中的查询字符时,会发生此问题。例如:
(assuming there is an entry in {table} with title="foobar")
SELECT * FROM {table} WHERE {table}.title LIKE '%foobars%';
由于s,上述内容与foobars = foobar不匹配。
我可以用什么来克服这个问题?
谢谢。
答案 0 :(得分:0)
在sql中你可以做'somestring' LIKE CONCAT('%',title,'%')
这是一个反向声明,但你必须要小心,因为性能很慢。但是对于你的问题,你应该尝试:
(assuming there is an entry in {table} with title="foobar")
SELECT * FROM {table} WHERE '%foobars%' LIKE CONCAT('%', {table}.title,'%');