mysql 字符串不像列

标签 mysql

在 mysql 查询中执行以下操作的正确方法是什么?:

$string="apple banana orange";

mysql 列 A = "banana"

mysql 查询:A 列未包含在 $string

谢谢!

最佳答案

如果每一行都有一个名为 A 的列,其中包含以空格分隔的标记,您可以运行此命令:

SELECT * FROM table_name
WHERE LOCATE(CONCAT(' ',A,' '),'apple banana orange') = 0;

我在两边都填了一个空格的原因是为了覆盖这样的情况:

SELECT * FROM table_name
WHERE LOCATE(CONCAT(' ',A,' '),'pineapple banana orange') = 0;

作为字符串

  • apple 是在 apple banana orange
  • applepineapple banana orange

在语义方面

  • apple 是在 apple banana orange
  • apple 不在 pineapple banana orange

如果您正在寻找 葡萄 怎么办?

作为字符串

  • grapeapple banana orange grape
  • 葡萄apple banana orange grapefruit

在语义方面

  • grapeapple banana orange grape
  • grape 不在 apple banana orange grapefruit

试一试!!!

警告

查询本身会产生全表扫描。

你应该考虑做 FULLTEXT 索引。

关于mysql 字符串不像列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15557471/

相关文章:

mysql - 向 MySQL 查询添加限制子句会显着减慢它的速度

mysql - belongs_to 和引用实际上在表中创建关系吗?

php - 从数据库数组中检索特定值

mysql - 我如何修复 weekofyear ('20121231' ) 返回 1?

mysql - 从 MS SQL 导入 MYSQL 时 SSIS 包出错

mysql - 提高四个巨大(约 100M 行)JOIN 表的 MySQL SELECT 查询速度

mysql - 由于语法错误无法导入 MySQL 数据库

mysql - 1 列 2 结果的总和每个结果不同!如此简单但无法正常工作

mysql - 加入表演

javascript - 如何将选定产品的行及其数量保存到 MySQL 数据库?