Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como fazer uma pesquisa sem distinção entre acento e maiúsculas e minúsculas no banco de dados do MediaWiki?


O MediaWiki extensão TitleKey é basicamente projetado para isso, mas só faz dobragem de caixa. No entanto, se você não se importar em hackear um pouco e tiver a extensão PHP iconv instalado, você pode editar TitleKey_body.php e substitua o método:
static function normalize( $text ) {
    global $wgContLang;
    return $wgContLang->caseFold( $text );
}

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

e (re) execute rebuildTitleKeys.php.

A extensão TitleKey armazena seus títulos normalizados em um tabela separada , surpreendentemente chamado titlekey . Destina-se a ser acessado através da interface de pesquisa do MediaWiki, mas se você quiser, certamente também poderá consultá-lo diretamente, por exemplo. assim:
SELECT page.* FROM page
  JOIN titlekey ON tk_page = page_id
WHERE tk_namespace = 0 AND tk_key = 'SOMETHING';