mysql データベースに奇妙な値を持つフィールドがあります。
????!"?;%:?*()_+,??????/????\/
問題は、選択できないことです-次のステートメントは行を返しません
SELECT *
FROM `pool_tag` AS `Extent1`
where `Extent1`.`PoolTag`='????!"?;%:?*()_+,??????/????\/'
値に「
ルールを使用して引用記号を複製しようとしていたので、このSQLを使用しました
SELECT *
FROM `pool_tag` AS `Extent1`
where `Extent1`.`PoolTag`="????!**""**?;%:?*()_+,??????/????\/"
(位置 6 の二重コーティング マークに注意してください)
しかし、まだ結果はありません
もう1つの問題は、SQLクエリで直接処理する特定の構文を見つけたとしても、Entity Frameworkからこれを選択する必要があることです(実際に見たクエリはEFによって生成されました)
これを処理する方法はありますか?
編集
私は mysql エスケープ文字を見つけ、すべてを 1 つずつ ("、'、\、%) チェックし、% が問題の原因であることを発見しました。
フィールドと検索値の両方から削除すると、SQLが機能します
フィールドに残してSQL選択でエスケープしようとすると、コードはまだ機能しません
例えば
SELECT *
FROM `pool_tag` AS `Extent1`
where `Extent1`.`PoolTag`="????!?;\%:?"
値が見つかりません
????!?;%:?
理由はありますか?