[MySQL] rechercher une valeur dans un champ sérialisé

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Marie-Aude, 10 Août 2011.

  1. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 371
    J'aime reçus:
    2
    Bonjour,

    une demande pour les pros du MySQL ^^

    J'ai dans la table postmeta de Wordpress un champs dont la valeur est sérialisée . Par exemple ça donne ça :
    a:3:{i:0;s:4:"1436";i:1;s:4:"2827";i:2;s:4:"0205";}

    Je voudrais faire une recherche et sortir tous les champs qui ont la valeur 1436
    En php, super simple, in_array
    en Mysql l'opérateur IN devrait marcher aussi, sauf que non, pas de bol, il ne comprend pas que c'est une array

    J'ai bien sûr la solution de bourrin, qui est de sélectionner tous les champs, et de passer rang après rang avec un foreach, et un maybe_unserialize (une fonction de WP). Dans le cas présent, ça ne serait pas dramatique, car je vais avoir une trentaine d'enregistrements au maximum.

    Néanmoins, je peux avoir besoin d'utiliser le même mécanisme avec beaucoup plus d'enregistrements, et là j'ai un peu peur pour la performance.

    J'ai trouvé ça http://lists.mysql.com/mysql/190196 qui décrit parfaitement mon problème, et qui renvoie vers ça http://dev.mysql.com/doc/refman/5.5/en/any-in-some-subqueries.html en suggérant de créer une table temporaire avec le contenu de l'array, et d'utiliser ensuite IN
    c'est juste sur l'opération "créer une table temporaire" que je coince complètement... :mrgreen:

    (on me l'a toujours dit, je ne sais pas coder)
     
  2. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 875
    J'aime reçus:
    72
  3. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 371
    J'aime reçus:
    2
    Règle de base : ne pas rajouter des tables pour des prunes, la table meta est faite pour ça ^^
    Règle de base numéro deux : quand WP sérialise des trucs dans le core, ne pas changer le core, et ne pas doublonner les données

    Donc ... je vais regarder les pistes que tu m'as données ^^
     
  4. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    11 875
    J'aime reçus:
    72
    Ma réponse était plutôt à prendre de manière générale, sans réflexion propre à tel ou tel CMS.
     
  5. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 371
    J'aime reçus:
    2
    Sur le fonds je suis parfaitement d'accord avec toi. Ce qui m'a permis de comprendre d'ailleurs pourquoi certaines fonctions n'étaient pas intégrées dans WordPress maintenant :D
    Et aussi que je cherchais midi à 14h (au moins..) in simple like suffisait en fait.

    Rah la la le nez dans le guidon
     
Chargement...
Similar Threads - [MySQL] rechercher valeur Forum Date
[résolu][mysql] faire un "NOT LIKE" sur une chaîne contenant des / Développement d'un site Web ou d'une appli mobile 25 Octobre 2014
[MySQL] Liste (select) avec des lignes au hasard Développement d'un site Web ou d'une appli mobile 23 Octobre 2014
[MySQL] Requête SELECT et INSERT entre 3 tables liées+Aide Développement d'un site Web ou d'une appli mobile 30 Avril 2014
[MySQL] Nombre d'enregistrements sur des horaires précis Développement d'un site Web ou d'une appli mobile 19 Juillet 2013
[MYSQL] Comment remplacer caractères dans tous les champs de toutes les tables d'une base? Développement d'un site Web ou d'une appli mobile 11 Juillet 2013
[MYSQL] Une sorte de "OR JOIN" ? Développement d'un site Web ou d'une appli mobile 5 Juillet 2013
[MySQL] sélectionner la dernière note pour chaque élève en une seule requète ? Développement d'un site Web ou d'une appli mobile 12 Avril 2012
[Mysql] Requête PDO avec variable php Développement d'un site Web ou d'une appli mobile 16 Février 2012
[Mysql] Requête PDO aléatoire Développement d'un site Web ou d'une appli mobile 7 Février 2012
[MYSQL] Tri par date Développement d'un site Web ou d'une appli mobile 7 Septembre 2011
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice