アプリ版:「スタンプのみでお礼する」機能のリリースについて

WEBアプリとSQLServerでSELECTをするときに不正をされないように
SELECT * FROM DB WHERE DB.A = 検索文字

SELECT * FROM DB WHERE DB.A= @A
のようにして、@Aを後で指定しますが、

SELECT * FROM DB WHERE LIKE '%検索文字'
のようにLIKE検索の場合うまくいきません。

どのように記述したらいいのでしょうか?

SELECT * FROM DB WHERE DB.A LIKE @A --> 駄目
SELECT * FROM DB WHERE DB.A LIKE '%@A' --> 駄目

A 回答 (2件)

どうやっていてダメなのか読みきれていませんが、以下は参考になりますか?



CREATE TABLE DB ([A][varchar](10))
INSERT INTO DB VALUES ('abcde')
INSERT INTO DB VALUES ('bcdef')

DECLARE @A varchar(12)
SET @A='%def'
SELECT * FROM DB WHERE DB.A LIKE @A
SET @A='def'
SELECT * FROM DB WHERE DB.A LIKE '%'+@A

DROP TABLE DB
    • good
    • 0

説明が曖昧ですけど。

。。

>LIKE検索の場合うまくいきません。

「うまくいかない」とは、具体的にどうなるのですか?

@Aのデータ型は、何ですか?
VARCHARで後に空白がないならですが、CHARであったりで、後に空白があると、その個数分の空白があるデータのみが検索対象になります。

この回答への補足

失礼いたしました。

SELECT * FROM DB WHERE DB.A LIKE @A --> 結果は0件
SELECT * FROM DB WHERE DB.A LIKE '%@A' --> 結果は0件

つまり該当するものがないと返してきます。

>@Aのデータ型は、何ですか?

varCharです。

補足日時:2009/02/03 11:23
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!