小编Tyl*_*den的帖子

在多列中搜索多个值

我有一个包含这些字段的表结果:

  • ID
  • 结果 ID
  • number_one (int)
  • number_two (int)
  • number_three (int)
  • number_four (int)
  • 数字五(整数)

每个 number_* 列可以包含一个从 01 到 90 的数字。

我有一个带有 90 个复选框的搜索表单。用户最多可以勾选 5 个复选框。

一旦用户选择 n 复选框,我需要构建一个查询来查找包含所有这些值的行,但数字可以位于五列中的任何一列。

例子:

用户勾选复选框 02、12 和 20。我需要检索所有三个数字的所有行,但我的数字可以在任何 number_* 列中。20 可以在 number_one 列中,02 可以在 number_three 列中,12 可以在 number_four 列中。如何构建此查询?

另外,使用一列而不是五列会更好吗?结果表:

  • ID
  • 结果 ID
  • 数字(字符串)

列号包含 02-12-20-57-84,其中 - 是分隔符。

示例:用户勾选复选框 02、12 和 20。所以我的查询将是

SELECT * 
FROM results 
WHERE numbers LIKE "%02%" 
    AND numbers LIKE "%12%" 
    AND numbers LIKE "%20%";
Run Code Online (Sandbox Code Playgroud)

更新:我目前正在使用 MySQL 进行此设置:

  • ID
  • 结果 ID
  • number_one …

mysql performance select where query-performance

6
推荐指数
1
解决办法
4万
查看次数

标签 统计

mysql ×1

performance ×1

query-performance ×1

select ×1

where ×1