0

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`="????!?;\%:?" 

値が見つかりません

????!?;%:?

理由はありますか?

4

0 に答える 0