sql >> Databáze >  >> RDS >> Mysql

Porovnávání řetězců v PHP stejným způsobem jako MySQL

Seřazení nemá nic společného s úložištěm. Chcete-li určit kódování úložiště, musíte nastavit znakovou sadu. Porovnání určuje, jak by mělo probíhat porovnávání a třídění. Řazení musí být obeznámeno se znakovou sadou, ale jinak nemá se znakovou sadou nic společného.

Chcete-li odpovědět na svou otázku, můžete použít iconv přepsat text a poté jej porovnat. Například:

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

To je v podstatě to, co pro vás udělá MySql, i když je pravděpodobně rychlejší a může mít trochu jinou porovnávací tabulku než ISO-8859-1//TRANSLIT . Tím si nejsem úplně jistý.

Pravděpodobně by však bylo jednodušší použít databázi, jak již navrhli jiní.



  1. Laravel:Získejte objekt z kolekce podle atributu

  2. Jak zruším nebo vytvořím databázi z clojure.java.jdbc?

  3. Získání všech nadřazených řádků v jednom SQL dotazu

  4. Seskupit výsledky v podskupinách