2011-07-24 11 views
1

私はいくつかの値を翻訳してからユーザーのためにファイルに出力する簡単なシステムを構築しようとしています。たとえば、「メソッド(aaaabbbccc-random text)」というテキストがあるとしましょう。ユーザがこれを何かに変換できるようにしようとしています。私は変換のためのテーブルを構築しました。このテーブルでは、ユーザーは 'Method *' => 'Description'と入力します。これは、基本的にテキスト "Method"とそれに続くもの(* =ワイルドカード) 'Description'(または、彼らが望む他のテキスト)に変換します。私はいくつかの情報があった場合フィールド値のMySQLワイルドカード?

は:

​​

をこれは、ユーザーによって定義されている最後の行は、フィルタを満たしていないとして、それは変換されません

Description 
Description 
Method3 

に変換する必要があります。

私はこれを達成するための最も簡単な方法は、それぞれの行のクエリを実行するだろうと思った:

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

しかし「メソッド*」はワイルドカード*に変換する必要があるとMySQLをする必要がされOLD_TEXT以来検索を実行するときにこれを処理します。私が試したすべての組み合わせ(たとえold_textを 'Method%'として保存しても)は動作していないようです。

誰かがこのようなシステムを構築するためのいくつかの指針を提供して、ユーザーがフィルタを定義してから、そのフィルタでMySQLを動作させることができます。

+0

ですするには、私はあなたのユーザーがクエリを書くことを望んでいないと思う – Ibu

答えて

0

mysql /(phpmyadminを使用)で行ったことがあります。これは、結果の出力画面(あなたがイタリアの解釈を願っ)です:

Visualizzazioneのレコード0から1(2 Totali、ラ・クエリヘクタール秒0.0010 impiegato)

SELECT * tabl FROM WHERE TXT LIKE 'メソッド%'

のid TXTオールライトので

 1 Method 2 (test - text) 

     2 method (aaaabbbccc - random text) 

?どこ

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

:私はあなたがこのようなものが必要だと思う

0


user_entry'Method (aaaabbbccc - random text)'ある
old_text'Method *'
new_textであるあなたがしようとしているかを理解するのは難しいです'Description'

関連する問題