sql >> Database >  >> RDS >> Mysql

Hoe kan ik accent- en hoofdletterongevoelig zoeken in de MediaWiki-database?

De MediaWiki TitleKey-extensie is hier in principe voor ontworpen, maar het doet alleen case-folding. Als je het echter niet erg vindt om het een beetje te hacken, en de PHP iconv extensie hebt geïnstalleerd, kunt u TitleKey_body.php en vervang de methode:

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

met bijv.:

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

en (her)voer rebuildTitleKeys.php uit.

De TitleKey-extensie slaat de genormaliseerde titels op in een aparte tabel , verrassend genaamd titlekey . Het is bedoeld om toegang te krijgen via de MediaWiki-zoekinterface, maar als je wilt, kun je het zeker ook direct opvragen, b.v. zoals dit:

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


  1. AWS RDS:"SQLSTATE [22001] - Gegevens te lang voor kolom" met MariaDB 10.2

  2. Retourneer meerdere velden als een record in PostgreSQL met PL/pgSQL

  3. Hoe toegang te krijgen tot de structuur en de kolomlijst, datatypes van refcursor te krijgen?

  4. oracle sql:update indien bestaat, anders invoegen