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

MediaWikiデータベースでアクセントと大文字と小文字を区別しない検索を行う方法は?

    MediaWiki TitleKey拡張機能 基本的にこのために設計されていますが、ケースフォールディングのみを行います。ただし、少しハッキングしてもかまわない場合は、PHP iconv拡張機能を使用してください。 インストールすると、 TitleKey_body.php メソッドを置き換えます:

    static function normalize( $text ) {
        global $wgContLang;
        return $wgContLang->caseFold( $text );
    }
    

    例:

    static function normalize( $text ) {
        return strtoupper( iconv( 'UTF-8', 'US-ASCII//TRANSLIT', $text ) );
    }
    

    そして、rebuildTitleKeys.phpを(再)実行します。

    TitleKey拡張機能は、正規化されたタイトルを別のテーブル 、驚くべきことにtitlekeyという名前 。 MediaWiki検索インターフェースを介してアクセスすることを目的としていますが、必要に応じて、直接クエリすることもできます。このように:

    SELECT page.* FROM page
      JOIN titlekey ON tk_page = page_id
    WHERE tk_namespace = 0 AND tk_key = 'SOMETHING';
    


    1. PostgreSQLテーブルを変更して列を一意にするにはどうすればよいですか?

    2. PHPからMySQLにバイナリデータを挿入するときにbin2hexを使用するのはなぜですか?

    3. 関数名をデータベースに保存して実行します

    4. テーブルから最後のレコードIDを取得する最も安全な方法