0

我正在使用 RIA 服务和 Mysql 数据库的 Silverlight 5 环境中工作。我有一个表,其中存储了大约 20 个不同的位置。我需要使用 Contains 或 LIKE 在可能的 20 个位置中的每个位置中检查每个记录是否存在可能的字符串匹配。如果在记录中找到位置匹配,我只需要该记录中的几个字段。不是来自其他 19 个地点的数据。如果正在检查的记录中没有匹配项,则不会保存任何内容。我对RIA不知所措。我可以用 20 or's 编写查询,但是当找到匹配项时,将返回整个记录,这将显示在数据网格中,并且由于搜索字段可能位于 20 个位置中的 1 个,我不能只隐藏不需要的字段. 可以将嵌套循环例程保存在 Mysql 函数或过程中,以便实体框架可以查询它吗?如果是这样,您能否给我一个正确方向的语法推动。提前谢谢。

4

1 回答 1

0

例如,让我假设列名为col1, col2, ..., col20in your_table

以下查询可以帮助您获取记录中第一个找到的匹配列值。

SET @criteria='%searh criteria%'; -- search string
SET @none_matched=NULL; -- use this alternative if none matched
SELECT 
 IF( col1 like @criteria, col1,
     IF( col2 like @criteria, col2,
        IF( col3 like @criteria, col3,
--          // 'if's until 'col20'
            @none_matched ) ... ) as 'your_label' -- make sure you have 20 closing braces
FROM your_table;

我不确定使用此类查询的性能。
或者,您可以依赖存储过程。

于 2012-06-28T01:07:06.140 回答