有没有办法搜索存储在MySQL中的感官数据?

时间:2016-05-10 18:02:36

标签: mysql search search-engine

我有一张表,其中我有多个列,其中包含温度等感官数据。我想询问是否存在使用输入用户查询的搜索栏搜索表中可用数据的现有方法(编辑:这基本上意味着用户可以输入任何文本查询,但如何将查询转换为在充满感官数据的表格中有用的东西?)我已经完成了我的研究,但我找不到任何体面的结果。贝娄是表格的描述:

如您所见,此表主要包含数值,但列名和Client和datetime列除外。

1 个答案:

答案 0 :(得分:1)

是的,有多种方法。 您可以提示用户为搜索指定不同的条件,例如:

  • DATERANGE
  • 客户端
  • TempRange
  • 状态

还有更多,这样你就可以过滤数据,只获得你想要的东西;但是从我在你的问题中可以理解的是你想要一个带有单个输入的搜索框来搜索多个字段,如果是这种情况你将需要过滤你感兴趣的每个字段,使用OR运算符和一些数据类型转换。

--your parameters and temporary variables to perform conversion
DECLARE @criteria VARCHAR(20) = '55';
DECLARE @criteria_temp INT = 0;

--try conversions here
BEGIN TRY
SET @criteria_temp = CONVERT(int,@criteria,0);
END TRY
BEGIN CATCH
SET @criteria_temp = 0;
END CATCH

--your query
SELECT * FROM MyTable
WHERE
Client LIKE '%'+@criteria+'%' OR
TEMP = @criteria_temp

您可以看到此查询将检索客户端包含“55”的所有记录,并记录TEMP等于55的位置。

如果用户输入字符串'test'作为标准,@criteria_temp的转换将失败,在这种情况下,您可以使用默认值,例如0,查询将返回客户端包含的所有记录' test'和记录temp等于0的记录。

基于此,您可以在查询中为不同的数据类型和搜索条件添加更多变量。