8719 sujets

Développement web côté serveur, CMS

Bonjour tout le monde,

DB Mysql:


**********************
*           var                 *
**********************
*    300#200%500#100  *     
**********************


var correspond a :
"référence"#"nombre" % "reference"#"nombre"

J'ai besoin de savoir via mysql si je peux comparer un nombre exterieur avec un "nombre" de var.
Par exemple: si le nombre exterieur "299" est compris dans nombre->200 de la référence 300 sachant que "reference" et "nombre" font partie de la même chaine.

A vrais dire il y a des solutions simples en php pas trés propres, qui donnent des bons résultats mais en utilisant beaucoup de ressources:
par exemple: il s'agit de chercher les var sur mysql, avec explode() les separar, comparer les "nombres" et les exclure du résultat.

Je n'ai rien trouvé sur internet (où je n'ai pas bien cherché), je vous demande a vous si une solution propre existe bien Smiley biggol .

Je vous remercie dans tous les cas Smiley smile
Modifié par carlescampi (26 Nov 2012 - 15:41)
Modérateur
carlescampi a écrit :


Je n'ai rien trouvé sur internet (où je n'ai pas bien cherché), je vous demande a vous si une solution propre existe bien Smiley biggol .


Salut,

De toute évidence, dès le départ ta BDD est mal modélisée. Réfléchi 5 minutes et revoie la structure de ta table voir carrément ta BDD car c'est tout simplement du grand n'importe quoi.
Modifié par niuxe (26 Nov 2012 - 05:33)
Bonjour Niuxe,

Merci d'avoir répondu, Oui hehe ça a l'air d'un n'importe quoi, mais dans mon cas c'est tres utile et efficace (je réduis de la memoire, et facilite les recherches).

A vrais dire dans le 99% des cas le modèle est #"reference"%"reference"# ce qui est trés efficace. mais dans certains cas précis c'est #"reference"%"numero"#, c'est dans ce cas que ma DB pose problème.

L'idée serait de séparer la chaine en deux colones différentes:

exemple:

# V1 % R1 # V2 % R2 # V3 % R3 # V4 % R4 # V5 % R5 #


en :

     V            R
----------+----------
    V1     +   R1
    V2     +   R2
    V3     +   R3
    V4     +   R4
    V5     +   R5


Pour les traiter plus facilement.

J'ai trouvé un sujet similaire:
http://forum.alsacreations.com/topic-20-56510-1-Resolu-MySQL-SPLIT-dune-chaine-en-lignes.html (Mais il n'a pas trouvé de solutions en sql, je continue a chercher.)

Mais la solution est sans doute avec les fonctions SQL par exemple:
http://www.marcogoncalves.com/2011/03/mysql-split-column-string-into-rows/

Dans tous les cas, je n'ai pas trouvé de solution simple, donc je vais contourner avec du php.

Merci
Modifié par carlescampi (26 Nov 2012 - 15:39)