2017-02-21 7 views
0

初めてのポスター。私は通常これらのことを私自身で理解することができます。しかし、うーん、私はレンガの壁にぶつかった。QoQ:LIKEの比較ですべてのレコードが返されない

ここでの基本は、私が持っているカスタムCRMシステムに製品カタログをハックしようとしていることです。 DAOシステムを使用して、データベースから読み込みとフィルタ用の関数を使用してデータを取得します。フィルタはクエリのクエリです。

問題は現在、アイテムを検索するページの検索機能を構築しています。

<cfset this.itemSet = this.damoney_itemsDAO.filter(this.searchData 
     , "item_name LIKE '%#resultList#%'") /> 

私はここにクエリをダンプするときに私が手に:私たちは引か取得されていない「何とか何とか電極」などのアイテムを持っているDBで

SELECT (fields) 
FROM arguments.query(which is just a mass read) 
WHERE item_name LIKE '%electrodes%' 

を。私がデータベースでそれを実行すると、私が探している結果が得られます。しかし、プログラム的には2つのアイテムしか表示されていません。

<cfoutput query="this.itemSet" startRow="#start#" maxRows="#perpage#"> 

ここに私が情報を出力している場所があります。もしかしたら何もありません。アイテムを一覧表示するのは単なるHTMLです。

必要に応じて詳細情報を提供してください。しかし、ここの誰かがDAOシステムで作業していて、かつてこの問題に遭遇していたなら、多分あなたはいくつかの洞察を提供することができます。

DAOにもクエリオプションが組み込まれていますが、それに伴う大規模なセキュリティ上の問題のため、すべてのコストがかかることは避けようとしています。 (注射)

+0

「期待される」レコードのサンプルが表示され、「実際に」レコードが返されるのに役立ちます。 RE:* "Blah Blah Electrodes"のような項目*愚かな質問ですが、QoQは大文字と小文字を区別しているという事実を説明していますか? ''%electrodes% ''は "** E ** lectrodes"と一致しないからです。 – Leigh

+0

はありません。しかし、それは正しい経路で私を得ます – inozzel

+0

*それを避けようとしています...それに伴う大規模なセキュリティ問題のために*まさにあなたは何について話していますか?この理由から、アプリ内のクエリは 'cfqueryparam'を使用する必要があります。 – Leigh

答えて

0
... WHERE lowercase(item_name) LIKE '%electrodes%' 

LIKEは、大文字と小文字が区別されるので、「何とか何とか電極」および「何とか何とか電極」は、異なるすべての方法です。

+0

ありがとう、私はまったくそれを考慮しなかった。それは私を正しい道に導きます。私は私のDAOにlowercase()を渡すことはできませんが、私はそれに例外を追加することができます。 その古い言葉、キス。 y A。私は次回そのことを覚えておくべきです。 – inozzel

+0

それがそれでした。下(#var#)。ありがとうございました!!! – inozzel

+0

* ".... LIKEは大文字と小文字を区別します。"コメントで述べたように、QoQのすべての文字列比較では、大文字と小文字が区別されます。つまり、IN、<>などです。また、小文字はサポートされている関数ではなく、 'lower()'です。 [QoQドキュメント:](https://helpx.adobe.com/coldfusion/developing-applications/accessing-and-using-data/using-query-of-queries/query-of-queries-user-guide)を参照してください。 html) – Leigh

関連する問題