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

标签 mysql sql regex

我的问题是这样的;我在使用 sql 匹配查询的某些部分时遇到问题。例如我想要这样的声明:

 SELECT * FROM {table} WHERE {table}.title LIKE '%term%';

其中 term 是一些搜索词,table 是我正在查询的表。该语句几乎在所有情况下都适用。当查询项比数据库中的项长时,就会出现问题。例如:

  (assuming there is an entry in {table} with title="foobar")
  SELECT * FROM {table} WHERE {table}.title LIKE '%foobars%';

由于 s,上面的内容不会匹配 foobars = foobar。

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

谢谢。

最佳答案

在sql中,你可以执行'somestring' LIKE CONCAT('%',title,'%'),这是一个反向的类似语句,但你必须小心,因为性能相当慢。但对于您的问题,您应该尝试:

(assuming there is an entry in {table} with title="foobar")
SELECT * FROM {table} WHERE '%foobars%' LIKE CONCAT('%', {table}.title,'%');

关于mysql - 使用 SQL 来匹配查询字符串中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24869149/

相关文章:

mysql - 在插入查询中添加 case 语句将空字符串转为 null

c++ - 将以\r\n 分隔的字符串拆分为字符串数组 [C/C++]

java - Java中电子邮件验证的正则表达式

c# - 有效使用正则表达式处理文件名的好方法是什么?

javascript - 形成多行插入的数组格式nodejs-mysql

mysql - 将 MySQL 列值从查询转换为行

mysql - karaf + pax-jdbc 连接池已达到限制

mysql - 选择共享 MIN(PRICE) 值的多个书名 | MySQL

sql - 使用SQL(Teradata)模糊搜索多个单词时,结果中如何列出匹配到的单词?

mysql - 谁能帮我看看这个 SQL 查询