MySql存储过程或函数?

时间:2012-06-27 22:23:11

标签: mysql stored-procedures

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

1 个答案:

答案 0 :(得分:0)

例如,我要假设col1中的列名为col2col20,...,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;

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