2016-10-28 10 views
1

データベース内で特殊文字、特にアポストロフィ付きの文字列を使用して検索を実行しようとしています。SQL特殊文字を使用したDB内の文字列の検索

たとえば、「Sandy's dog」という文字列を検索したいと思いますが、アポストロフィを残して「sandys dog」と入力しました。たとえ「サンディの犬」がデータベースに存在していても、それは結果に表示されないようです。

は、ここに私のクエリです:私はどこでも検索しました

SELECT * FROM `Table` WHERE `Title` LIKE '%sandys dog%' 

と私は作品解決策を見つけるように見えることはできません。

EDIT 制限: - 予想通りアポストロフィと砂の犬のためのユーザーの検索は、それが正常に動作している場合:文字列は、ユーザが ノートを生成しています。 - 最終的には、表にアポストロフィがある場合とない場合の両方の文字列が含まれている場合、すべての結果を得たいと考えています。

+0

パラメータ化されたクエリを使用して実際の値を検索してみませんか?あなたは 'SELECT * FROM TABLE WHEREという名前をつけることができます。 '%sandy%s dog%''または 'SELECT * FROM TABLE WHEREタイトルLIKE '%sandy_s dog%' ' – chris85

答えて

1

SQLサーバーでは、REPLACE使用することができます:文字列内の

SELECT * 
FROM Table 
WHERE REPLACE(Title, '''', '') LIKE '%sandys dog%' 

ダブルアポストロフィはエスケープ文字なので、文字列内の任意のアポストロフィを検索し、空白の文字列に置き換えます。

+0

驚くばかり!これはうまくいった。ありがとう! – Ivy

+1

次に、この回答に正しい@Ivyとマークしてください。として、それは他のユーザーも簡単にこの答えを見つけるのに役立ちます。 –

0

どのように?

SELECT * FROM Table WHERE Title LIKE '%sandy''s dog%' 

または

SELECT * FROM Table WHERE Title LIKE '%sandy_s dog%' 

アンダースコア "は、単一の文字" ワイルドカードです。

関連する問題