我一直在试图弄清楚如何使用MySQL进行查询,以判断特定列中的值(字符串$haystack)是否包含特定数据(字符串$needle),如下所示:

SELECT *
FROM `table`
WHERE `column`.contains('{$needle}')

在PHP中,函数名为substr($haystack, $needle),因此可能:

WHERE substr(`column`, '{$needle}')=1

推荐答案

其实很简单:

SELECT *
FROM `table`
WHERE `column` LIKE '%{$needle}%'

%是任何字符集(无、一个或多个)的通配符.请注意,在非常大的数据集上,这可能会变慢,因此如果数据库增长,则需要使用全文索引.

Mysql相关问答推荐

MYSQL子查询

如何在逗号分隔字符串值中使用LEFT函数

在MySQL中查找具有公共值的列名

如何在Sequelize中创建限制查询?

从insert语句获取新生成的虚拟UUID

MySQL 搜索列字段字符串

查找表中的唯一记录

对匹配两个或多个表的表结果进行排序

拆分列值并适当地返回拆分值

为什么order by子句可以利用索引?

MySql中的可见索引和不可见索引是什么

MySQL - 考虑到所有前几天,每天计算唯一用户

MySQL - 使一对值唯一

启用 NO_BACKSLASH_ESCAPES 选项时如何转义文字百分号?

MySQL术语约束与外键的区别?

如何将 MySQL 查询结果存储在另一个表中?

如何通过一个语句描述数据库中的所有表?

与 MySql 的连接正在自动中止.如何正确配置Connector/J?

MySQL - 重复表

在 PHP 中运行 MySQL *.sql 文件