Avec MySQL, il est possible de spécifier dans une clause SELECT l’interclassement à utiliser pour trier un champs : voir http://dev.mysql.com/doc/refman/5.0/fr/charset-collate.html
Cela est particulièrement utile quand une table contient des données en provenance de plusieurs langues. Cas typique : supposons une table non spip correspondant à un index avec deux champs terme et langue.
Si je veux sortir l’index français ou bien l’index espagnol je ne vais pas utiliser le même interclassement. Est-ce possible de faire une boucle spip du genre <BOUCLE_index(INDEX) {langue=fr} {par terme}>#TERME </BOUCLE_index> en précisant la méthode d’interclassement à utiliser ?
Si je veux sortir l'index français ou bien l'index espagnol je ne vais pas
utiliser le même interclassement. Est-ce possible de faire une boucle spip
du genre <BOUCLE_index(INDEX) {langue=fr} {par terme}>#TERME<br
/></BOUCLE_index> en précisant la méthode d'interclassement à utiliser ?
Si je veux sortir l'index français ou bien l'index espagnol je ne vais pas
utiliser le même interclassement. Est-ce possible de faire une boucle spip
du genre <BOUCLE_index(INDEX) {langue=fr} {par terme}>#TERME<br
/></BOUCLE_index> en précisant la méthode d'interclassement à utiliser ?
avec ses tables en utf8 (DEFAULT CHARSET=utf8)
dans ce jeu de caractère (CHARACTER_SET_NAME)
on peut avoir 21 collations (interclassements) différentes :
complément :
dans le jeu de caractère latin1,
ce sont 8 collations accessibles :
SELECT articles.titre, articles.lang
FROM spip_articles AS `articles`
WHERE articles.statut = 'publie'
AND articles.date < '9999-12-31'
ORDER BY articles.titre COLLATE utf8_spanish2_ci
Merci pour tout.
C'est exactement ce que je recherchais.
Je teste ça dans les semaines à venir (il s'agit de produire des index avec termes correspondants dans différentes langues, en générant des fichiers ODT à partir de odtphp, SPIP étant utilisé pour générer le code xml du futur fichier).