2011-07-24 28 views
1

我試圖構建一個簡單的系統來翻譯一些值,然後將它們輸出到用戶的文件中。比方說,我有文本:'方法(aaaabbbccc - 隨機文本)',我試圖讓用戶將其轉換爲任何他們想要的。我爲轉換建立了一個表格,在這個表格中,用戶輸入'Method *'=>'Description',這基本上意味着他們想要文本「方法」以及任何(* =通配符)被簡單轉換到'描述'(或者他們想要的任何其他文本)。字段值的MySQL通配符?

如果我有一些信息:

​​

這應該轉換成

Description 
Description 
Method3 

由於最後一行不滿足由用戶定義的過濾器,它不會轉變。

我認爲實現這一目標將是爲各行執行查詢的最簡單的方法:

SELECT new_text FROM table WHERE old_text LIKE 'Method 2 (test - text)' etc. 

但由於OLD_TEXT是「方法*」的*需要轉換成一個通配符和MySQL需要在執行搜索時處理這個問題。我嘗試的每種組合(甚至將old_text存儲爲「Method%」)似乎都不起作用。

希望有人可以提供一些建立這樣的系統的指針,用戶可以定義過濾器,然後讓MySQL在這些過濾器上操作。

+0

這是很難理解你想什麼要做,我不認爲你希望你的用戶寫下查詢 – Ibu

回答

0

它在mysql /(使用phpmyadmin)。這是所得到的輸出畫面(希望你解釋意大利):

Visualizzazione記錄0 - 1(2 Totali,拉查詢公頃impiegato 0.0010秒)

SELECT * FROM tabl WHERE TXT LIKE '方法%'

ID TXT

 1 Method 2 (test - text) 

     2 method (aaaabbbccc - random text) 

奧萊特這樣嗎?

0

我想你需要的東西是這樣的:

SELECT CASE WHEN old_text LIKE REPLACE(user_entry, '*', '%') 
      THEN new_text 
      ELSE old_text 
     END AS modified_text 
FROM table 

其中:
old_text'Method (aaaabbbccc - random text)'
user_entry'Method *'
new_text'Description'