Posez votre question Signaler

{MySQL} like sur champs de la bae avec %

ybvj 3Messages postés 7 octobre 2008Date d'inscription - Dernière réponse le 15 juin 2009 à 09:13
Bonjour,
Je suis en train de codé une petite requête que je pensais simple et qui me bloque complétement.
Cette requête doit vérifier qu'un le début d'un nom de produit corresponde à un champs de ma base de données.
J'ai donc fait ça :
SELECT * FROM wp_posts where '$nom' like 'wp_posts.nom_commercial%' and wp_posts.post_status="publish" group by wp_posts.post_title order by wp_posts.post_date desc limit 5;
J'ai donc ma variable $nom que je compare à mon champs nom_commercial stocké dans ma base et qui doit me retourner les enregistrements où le début de la variable $nom (exemple : 'motomed x25') correspond à mon champs nom_commercial (exemple : motomed).
Le problème est que mon le % ne semble pas fonctionner avec le champs car soit je ne met pas de "" et erreur sql, soit j'en met et il est interprété comme du texte ...
C'est probablement tout bête mais j'en perd mon latin ...
Merci de votre aide
Lire la suite 

{MySQL} like sur champs de la bae avec % »

4 réponses
Réponse
+0
moins plus
dans quel langage du programmation tu va utiliser cette requêtte?
Ajouter un commentaire
Réponse
+0
moins plus
voila comme exemple d'utilisation de l'expression LIKE dans Oracle, j'espère qui vous aide bien.

SELECT park_name
FROM park
WHERE park_name LIKE 'State Park%';
Ajouter un commentaire
Réponse
+0
moins plus
Salut,
je pense que dans votre reqûete vous devez changer la position de la variable nom et la colonne (wp_posts.nom_commercial ) en mettant :

SELECT * FROM wp_posts where 'wp_posts.nom_commercial' like '$nom%' and wp_posts.post_status='publish' group by wp_posts.post_title order by wp_posts.post_date desc limit 5;

et si vous cherchez "motomed25" et dans la base de données vous avez un enregistrement "Motomed" c'est normal qu'il va pas l'afficher, car lorsqu'il cherche une valeur qui débute avec "Motomed25", il va pas l'a trouver car même "Motomed" ne débute pas avec "mohamed25".

Mais si vous essayer l'inverse ça va retourner une résultat, si vous avez une valeur "Motomed" essaye de chercher en mettant "Motom".

Bonne Chance

Ajouter un commentaire
Réponse
+0
moins plus
Merci de votre aide,

J'interroge ma base mysql en passant par du php.

Mon champ "wp_posts.nom_commercial" contient le terme à recherché qui est constitué d'une version tronqué du nom complet.

Je dois dois vérifier si $nom, ma variable contenant le nom complet du produit, ressemble à "wp_posts.nom_commercial" qui contient le nom ou un abrégé du nom du produit stocké dans la base.

D'où l'ordre de ma requête afin de trouver si $nom débute par "wp_posts.nom_commercial" mais cela semble impossible de rajouter % afin de ne prendre en compte que le début de $nom ...

Voilà mon problème.

Si j'inverse l'ordre, cela ne fonctionne plus evidemment vu que $wp... contient la version tronqué et non complète.
Ajouter un commentaire
Ce document intitulé « {MySQL} like sur champs de la bae avec % » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?