sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo hacer una búsqueda que no distingue entre mayúsculas y minúsculas en la base de datos de MediaWiki?

La extensión MediaWiki TitleKey está diseñado básicamente para esto, pero solo hace el plegado de cajas. Sin embargo, si no te importa hackearlo un poco y tienes la extensión PHP iconv instalado, puede editar TitleKey_body.php y reemplaza el método:

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

con por ejemplo:

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

y (re)ejecutar rebuildTitleKeys.php.

La extensión TitleKey almacena sus títulos normalizados en un tabla separada , sorprendentemente llamado titlekey . Está destinado a acceder a través de la interfaz de búsqueda de MediaWiki, pero si lo desea, también puede consultarlo directamente, p. así:

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