0

Spring + Hibernateアプリでは、名前付きパラメーターを使用しようとすると、pasendクエリは、データベースにテキストとして保存されたxmlドキュメントの値を合計する必要があります。

    SELECT  document_type, 
     SUM(CAST(substring(document_content ,'<ab.*>(.*[0-9])</ab>') as float)) as value, COUNT(*)
     FROM  statistic_data_test 
     WHERE column LIKE :param1::text
     GROUP BY document_type 
     ORDER BY value DESC 

param1は、URLを介してプログラムに渡される名前付きパラメーターです。クエリ名とパラメータ名全体は、ユーザーによって動的に作成されます。

上記のコードは正常に機能しますが、完全に一致するものを見つける機能が必要であるだけでなく、クエリで刺し傷を連結することもできません。今のところ、コードの一部で、タイプがテキストであるかどうかを確認しています。テキストである場合は、接尾辞と接頭辞として%マークを追加します。

私が気にしないのは、%マークをパラメータからクエリ文字列に移動することですが、

WHERE column LIKE '%'+:param1::text+'%'

エラーになります

どのようにそれを行うことができますか?クエリで刺し傷を連結する方法は?

4

1 に答える 1

1

戦略を変更し、目標を維持します。

関数を使用しpositionます。

position(:param1::text in column) <> o
于 2012-07-18T20:36:29.243 に答える