查找包含MySQL中给定值的列

时间:2010-05-30 23:51:10

标签: mysql cell

我在MySQL数据库中有一个表。我被赋予一个值作为该表中的单元格值出现,但我不知道它是哪个单元格,即该单元格的行和列。查找该值所属的列的最有效方法是什么?提前谢谢。

示例:

Column_1 | Column_2 | Column_3
1        | 2        | 3
4        | 5        | 6
7        | 8        | 9

现在我的输入值为“8”。我想知道是否有一种有效的方法可以找出“8”的值属于Column_2。

3 个答案:

答案 0 :(得分:2)

有些奇怪的是,您不知道数据所在的列,因为列意味着具有明确定义的函数。

[原始回复清理。]

编辑:您的更新帖子只是要求列。在这种情况下,您不需要视图,只能运行此查询

SELECT col FROM (
   SELECT "Column_1" AS col, Column_1 AS value FROM YourTable
   UNION ALL SELECT "Column_2", Column_2 FROM YourTable
   UNION ALL SELECT "Column_3", Column_3 FROM YourTable
) allValues
WHERE value=8;

当您对表运行此查询时,它将返回“Column_2”

答案 1 :(得分:0)

在不了解您的应用的更多信息的情况下,您有以下几种选择:

  • 使用MySQL的内置全文搜索。您可以在MySQL文档中查看MATCH函数。
  • 根据应用程序的需要,您可以决定使用外部全文搜索索引(如Solr或Sphynx)索引整个表。这提供了即时响应时间,但您需要更新索引。
  • 你可以遍历表中的所有列,在MySQL中执行LIKE查询(CPU和时间非常昂贵)

答案 2 :(得分:0)

您使用重复群组设计此表格,但这不满足First Normal Form

您应该创建第二个表,并将column1,column2和column2的值存储在一行中的三行中。

了解更多详细信息database normalization的规则。