簡體   English   中英

MySQL的存儲過程或函數?

[英]MySql Stored Procedure or Function?

我正在帶有RIA服務和Mysql數據庫的Silverlight 5環境中工作。 我有一個表,其中存儲了大約20個不同的位置。 我需要使用Contains或LIKE在可能的二十個位置之一的每個人中檢查每個記錄是否存在可能的字符串匹配。 如果在記錄中找到位置匹配,則只需要該記錄中的幾個字段即可。 不是來自其他19個位置的數據。 如果檢查的記錄中沒有匹配項,則不會保存任何內容。 我對RIA不知所措。 我可以用20或20來寫一個查詢,但是當找到匹配項時,將返回整個記錄,該記錄將顯示在數據網格中,並且由於搜索字段可能位於20個位置中的1個,因此我不能只隱藏不需要的字段。 嵌套循環例程可以保存在Mysql函數或過程中,以便實體框架可以查詢它嗎? 如果是這樣,您能不能給我正確的語法提示。 提前謝謝。

例如,讓我假設col20中的列名稱為col1col2 ,..., 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;

我不確定使用這種查詢的性能。
或者,您可以依賴存儲過程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM