php - 如何在 MySQL 中搜索逗号之间的特定字符串?

标签 php mysql

我的表列包含由 , 分隔的字符串,如下所示

Algebraic topology,Riemannian geometries
Classical differential geometry,Noncommutative geometry,Integral transforms
Dark Matter
Spectral methods,Dark Energy,Noncommutative geometry
Energy,Functional analytical methods

我正在尝试搜索在逗号之间有字符串的 MySQL 行,例如,如果我搜索非交换几何,我想选择这两行

Classical differential geometry,Noncommutative geometry,Integral transforms
Spectral methods,Dark Energy,Noncommutative geometry

这是我尝试过的

SELECT * FROM  `mytable` WHERE  ``col` LIKE  '%Noncommutative geometry%'

工作正常,但问题是,如果我正在搜索Energy,我想选择该行

Energy,Functional analytical methods

但是我的代码给出了两行

Energy,Functional analytical methods
Spectral methods,Dark Energy,Noncommutative geometry

这不是我要找的。有没有办法解决这个问题,以便它只找到逗号之间有字符串的行?

最佳答案

使用 REGEXP 尝试一下这些运算符:

SELECT * FROM  `mytable`
WHERE  `col` REGEXP  '(^|.*,)Noncommutative geometry(,.*|$)'

SELECT * FROM  `mytable`
WHERE  `col` REGEXP  '(^|.*,)Energy(,.*|$)'

所使用的表达式 ('(^|.*,)$searchTerm(,.*|$)') 要求搜索词前面有一个逗号或开头字符串,后跟逗号或字符串末尾。

关于php - 如何在 MySQL 中搜索逗号之间的特定字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32223139/

相关文章:

php - 如何在 Symfony 和 Doctrine 中使用存储过程

php - 如何删除不存在的图像文件夹和mysql记录新闻

python - MySQL + Python :Using auto increment primary key

来自命令行的 MySQL - 我可以实际使用 LOCKs 吗?

mysql - 案例 when then,但在 when 和 before then 内有 AND 条件

php - 我无法在 Godgiven PHP-API 项目中获取详细错误

php - 在 PHP 中创建异常的成本有多高?

php - Zend_Db_Row 子类的本地 "Cache"

php - 如何在使用 PHP 将图像上传到服务器时将文件名与其他信息一起存储在数据库中?

mySql 使用行的 sum() 进行更新