使用SQL匹配查询字符串中的字符

时间:2014-07-21 15:43:05

标签: mysql sql regex

我的问题是这个;我在使用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不匹配。

我可以用什么来克服这个问题?

谢谢。

1 个答案:

答案 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,'%');