sql >> データベース >  >> RDS >> Mysql

Mysql検索は期間をスペースのように扱います

    他の回答が示唆するように、フィールドで置換を行う代わりに、検索語で置換を行うことができます。 。このようにして、MySQLは引き続きfield1のインデックスを使用できます。 。スペースではなくピリオドが常に存在すると仮定します

    SELECT field1, field2 FROM table WHERE field1 = REPLACE('user input', ' ', '.')
    

    ドットなしで視覚化したい場合は、SELECTで逆置換を行うことができます 一部も:

    SELECT REPLACE(field1, '.', ' '), field2 FROM table 
    WHERE field1 = REPLACE('user input', ' ', '.')
    

    または、DBと戦う代わりに、DBを更新することを検討することもできます:

    UPDATE table SET field1 = REPLACE(field1, '.', ' ')
    


    1. OracleLOBを削除する方法

    2. MySQLCREATETABLEステートメントのPRIMARYKEY定義

    3. Postgres9.1のDockerコンテナがポート5432をホストに公開していません

    4. Oracle Sql Loader ORA-01722:Windowsの行末を含むCSVファイルをロードするときに無効な数値