【问题标题】:Finding a match in MySQL when comparing two comma delimited strings?比较两个逗号分隔的字符串时在 MySQL 中找到匹配项?
【发布时间】:2011-12-01 16:55:02
【问题描述】:

好的,所以我在考虑使用 FIND_IN_SET 但显然它一次只能处理一件物品?基本上我有这样的东西:

$valuesA = '48, 59, 206, 102, 8';

在数据库中,有一个包含行和列的表,其中可能包含其中的一些值。我只会看一行,所以我不必遍历整个表格。

例子:

第 215 行:valuesB 列 = '66, 84, 102, 559';

项目“102”应该匹配。

我需要一个 MySQL 查询,如果 $valuesA 中的任何项目与 valuesB 列中的任何项目匹配,它将返回匹配项。

最有效的方法是什么?

谢谢!

【问题讨论】:

  • 如果你要处理一定数量的动物,使用位掩码会很快。

标签: php mysql arrays


【解决方案1】:

规范化表格。值不应该这样存储。

最有效的(除了规范化)是简单地将OR 全部放在一起。

【讨论】:

  • 抱歉,在表格中它们实际上是 ID,所以它只是一个数字表示(5、28、485、53)而不是其他数字。
  • 即便如此,您仍然不应该那样存储它们。
  • 好吧,我个人不会以这种方式设计表格,但目前无法改变架构。我几乎被 OR 所困扰?
  • 你是,是的。 MySQL 假设(几乎)所有数据都已标准化。
猜你喜欢
  • 2013-05-20
  • 2014-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多