0

最初または途中または最後に description キーワードを持つ data を取得しようとしています。

以下は私の質問です

like '%" + description + "' or '" + description + "%' or '%" + description + "%'

問題は、無関係なデータを返すことです。

たとえば、説明に「as」を指定した場合、結果として「ケーキ」も選択されます。

Description
------------------------------------------------------------
asd
asdasd
cake
Naw
Tast
ad
4

3 に答える 3

2

あなただけが書くことができます

like '%" + description + "%'

これにより、 or ステートメントを使用せずに、開始、途中の文字列、その文字列で終了するデータを取得できるため、必要なデータを取得できます。

于 2012-11-05T07:35:16.897 に答える
1

あなたはこれを持っているので'%" + description + "%'

なぜ直接しないのか

SELECT..FROM...WHERE columnName LIKE '%" + description + "%'"

あなたのクエリは で脆弱ですSQL Injection。代わりにパラメーターを使用する

"
SELECT...
FROM...
WHERE columnName LIKE @description"

次に、クエリでパラメーターを定義します

command.Parameters.AddWithValue("@description", "%" + description + "%")
于 2012-11-05T07:35:30.387 に答える
1

置くだけ

LIKE '%" + description + "%'

ちなみに、「or」ステートメントが複数ある場合は、列名とコンパレーターを書き直す必要があります

mycolumn like '%" + description + "' or
mycolumn like '" + description + "%' or 
mycolumn like '%" + description + "%'

ただし、その場合は必要ありません。

準備済みステートメントも参照してください。

于 2012-11-05T07:34:43.000 に答える