sql >> Database >  >> RDS >> Mysql

Strings in PHP vergelijken op dezelfde manier als MySQL doet

De sortering heeft niets te maken met de opslag. U moet de tekenset instellen om de opslagcodering te bepalen. De sortering bepaalt hoe vergelijking en sortering moet gebeuren. De sortering moet tekenset bewust zijn, maar verder heeft het niets te maken met de tekenset.

Om uw vraag te beantwoorden, kunt u iconv . gebruiken om de tekst te transcriberen en deze vervolgens te vergelijken. Bijvoorbeeld:

function compare($s1, $s2) {
  return strcmp(
    iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $s1),
    iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $s2));
}

Dit is eigenlijk wat MySql voor u zal doen, hoewel het waarschijnlijk sneller is en een iets andere sorteertabel kan hebben dan ISO-8859-1//TRANSLIT . Daar ben ik niet helemaal zeker van.

Het zou echter gemakkelijker zijn om de database te gebruiken, zoals anderen al hebben gesuggereerd.



  1. Maximum aantal records in een MySQL-databasetabel

  2. MySQL - ontploffen/splitsen van invoer naar opgeslagen procedure

  3. Ik probeer onderstaande resultaatuitvoer te bereiken

  4. Voeg array in MySQL-database in met PHP