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

JSON文字列でのMYSQLREGEXP検索

    デバッグは非常に簡単です:

    SELECT '"listeListeOuiNon":"2"' REGEXP BINARY '"listeListeOuiNon":".*1.*"'

    0を返します

    SELECT '"listeListeOuiNon":"1"' REGEXP BINARY '"listeListeOuiNon":".*1.*"'

    1を返します

    SELECT '"listeListeOuiNon":"1,2"' REGEXP BINARY '"listeListeOuiNon":".*1.*"'

    1を返します

    したがって、何かがあなたの側に正しくありません...本文が"listeListeOuiNon":"2"に等しい行を返すことができなかったためです 。ただし、その本文には、次のようなステートメントがいくつか含まれている可能性があります。

    body =>'"listeListeOuiNon": "1,2"、 "listeListeOuiNon": "2"'

    したがって、正規表現を変更する必要があります:

    '^"listeListeOuiNon":".*1.*"$'

    それでは、クエリを変更する必要があります:

    SELECT DISTINCT tag, body FROM pages WHERE (body REGEXP BINARY '"listeListeOuiNon":".*1.*"') AND NOT (body REGEXP BINARY '"listeListeOuiNon":"2"')



    1. PostgreSQLのAVG()関数

    2. MySQLまたはMariaDBデータベースをSQLインジェクションから保護する方法:パート2

    3. SQL Serverセマンティック検索を使用したWindowsファイルシステムでのドキュメントの保存と分析–パート2

    4. Transact-SQLを使用してビューの定義を取得する4つの方法