Requête mySQL utilisant WHERE et SUBSTR
thipyt
-
ludo394 Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
ludo394 Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai actuellement une base de donnée regroupant des communications.
Dans la table principale, intitulée communications, j'ai une "id_com" dans laquelle je ne souhaite sélectionnée que certaines valeurs.
Mes id_com sont composées par la concaténation d'un id qui s'incrémente à chaque création de com et d'un login utilisateur qui lui est constant.
Cela se présente donc de la façon suivante:
id_com
133012
233012
133026
333012
133045
233045
433012
533012
...
Où 33012, 33026 et 33045 sont des logins utilisateur.
Je souhaite pouvoir ne récupérer avec mon SELECT, que les ligne présentant le login de mon choix.
J'ai essayé d'utiliser la requête suivant, où la variable login est récupérée en php, mais cela ne passe pas:
'SELECT id_com FROM communication WHERE (SUBSTR(id_com,-5,5) = \''.$data['login'].'\)'
Je voulais donc savoir s'il était possible d'utiliser un SUBSTR dans un WHERE et si oui, est-ce que vous aviez une idée de l'endroit d'où pouvait venir mon soucis.
Merci d'avance!
J'ai actuellement une base de donnée regroupant des communications.
Dans la table principale, intitulée communications, j'ai une "id_com" dans laquelle je ne souhaite sélectionnée que certaines valeurs.
Mes id_com sont composées par la concaténation d'un id qui s'incrémente à chaque création de com et d'un login utilisateur qui lui est constant.
Cela se présente donc de la façon suivante:
id_com
133012
233012
133026
333012
133045
233045
433012
533012
...
Où 33012, 33026 et 33045 sont des logins utilisateur.
Je souhaite pouvoir ne récupérer avec mon SELECT, que les ligne présentant le login de mon choix.
J'ai essayé d'utiliser la requête suivant, où la variable login est récupérée en php, mais cela ne passe pas:
'SELECT id_com FROM communication WHERE (SUBSTR(id_com,-5,5) = \''.$data['login'].'\)'
Je voulais donc savoir s'il était possible d'utiliser un SUBSTR dans un WHERE et si oui, est-ce que vous aviez une idée de l'endroit d'où pouvait venir mon soucis.
Merci d'avance!
A voir également:
- Substr mysql
- Mysql community server - Télécharger - Bases de données
- Could not connect to mysql! please check your database settings! - Forum Redhat
- Phpmyadmin a tenté de se connecter au serveur mysql, et le serveur a rejeté la connexion. merci de vérifier les valeurs de host, username et password dans la configuration et de s'assurer qu'elles correspondent aux informations fournies par l'administrateur du serveur mysql. ✓ - Forum PHP
- Mysql error 1 ✓ - Forum Réseaux sociaux
- Access vs mysql - Forum Webmastering
6 réponses
Ton problème, posé comme ça, n'est pas clair!
Donne moi un exemple de ton id_com si c'est possible!
Sinon, essaye d'enlever les parenthèses!
J'ai essayé cette syntaxe et ça marche pour moi thypit :
SELECT * FROM TABLE WHERE SUBSTR(CHAMPS,1,4) = "abcd";
Epsilone
Donne moi un exemple de ton id_com si c'est possible!
Sinon, essaye d'enlever les parenthèses!
J'ai essayé cette syntaxe et ça marche pour moi thypit :
SELECT * FROM TABLE WHERE SUBSTR(CHAMPS,1,4) = "abcd";
Epsilone
Si tu veux récuprer les 5 premiers caractères de ton id_com, tu dois faire : SUBSTR(id_com,1,5)
Voici la syntaxe :
SUBSTR(str,pos): sélectionne tous les caractères de <str> en commençant par position <pos>. Notez que cette syntaxe n’est pas prise en charge par SQL Server.
SUBSTR(str,pos,len): en commençant par le caractère <pos> dans la chaîne <str>, sélectionne les caractères <len> suivants.
Sinon, si tes id_com sont sous le format :
id_com
133012
233012
133026
333012
133045
233045
433012
533012
Bin je ne vois pas l'utilité de ce SUBSTR!
Explique moi!
Epsilone
Voici la syntaxe :
SUBSTR(str,pos): sélectionne tous les caractères de <str> en commençant par position <pos>. Notez que cette syntaxe n’est pas prise en charge par SQL Server.
SUBSTR(str,pos,len): en commençant par le caractère <pos> dans la chaîne <str>, sélectionne les caractères <len> suivants.
Sinon, si tes id_com sont sous le format :
id_com
133012
233012
133026
333012
133045
233045
433012
533012
Bin je ne vois pas l'utilité de ce SUBSTR!
Explique moi!
Epsilone
En faisant SUBSTR(id_com, -5, 5), je récupère bien seulement mon login, du moins en php. Je sais donc que la fonction fonctionne, je l'ai testé et affiché mes login issus de cette fonction.
Le soucis, c'est que pour faire une pagination qui nécessitera un certain nombre de tests, je dois utiliser cette fonction SUBSTR dans mon WHERE, pour ne prendre en compte que les id_com correspondant à mon login, c'est à dire le login que je compare, comme expliqué dans mon premier message.
Ma question n'est donc pas de savoir comment fonction la fonction SUBSTR, mais plutôt de savoir s'il est possible de l'utiliser dans un WHERE et si oui, comment.
Tu dis ne pas voir l'utilité de mon SUBSTR, mais comment veux-tu retrouver les com correspondant à mon login (de 5 chiffres et commençant par 33) sans utiliser cette fonction??
J'ai trouvé cette fonction et j'ai pensé qu'elle pouvait correspondre à mon besoin, maintenant il y a peut être d'autres solutions et qu'effectivement cette fonction n'est pas adaptée ici...
Je n'ai pas la prétention de tout connaitre du php et mySQL mais et c'est pour ça que j'espère que quelqu'un pourra m'aider à résoudre mon problème!
Le soucis, c'est que pour faire une pagination qui nécessitera un certain nombre de tests, je dois utiliser cette fonction SUBSTR dans mon WHERE, pour ne prendre en compte que les id_com correspondant à mon login, c'est à dire le login que je compare, comme expliqué dans mon premier message.
Ma question n'est donc pas de savoir comment fonction la fonction SUBSTR, mais plutôt de savoir s'il est possible de l'utiliser dans un WHERE et si oui, comment.
Tu dis ne pas voir l'utilité de mon SUBSTR, mais comment veux-tu retrouver les com correspondant à mon login (de 5 chiffres et commençant par 33) sans utiliser cette fonction??
J'ai trouvé cette fonction et j'ai pensé qu'elle pouvait correspondre à mon besoin, maintenant il y a peut être d'autres solutions et qu'effectivement cette fonction n'est pas adaptée ici...
Je n'ai pas la prétention de tout connaitre du php et mySQL mais et c'est pour ça que j'espère que quelqu'un pourra m'aider à résoudre mon problème!
Bonjour,
Est-ce qu'un WHERE CHAMP LIKE '%login%' ne pourrait pas répondre à ta question plus simplement ?
Est-ce qu'un WHERE CHAMP LIKE '%login%' ne pourrait pas répondre à ta question plus simplement ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Euh... bah pour ne récupérer que les id_com correspondant à mon login!
Comment veux-tu faire sinon?
La fonction substr permet de ne s'intéresser qu'à une partie de mon id_com et de le comparer avec mon login.
Du moins c'est comme ça que je le vois...
Peut-être que je me trompe sur l'utilisation de cette fonction... Peux-tu développer stp?
Comment veux-tu faire sinon?
La fonction substr permet de ne s'intéresser qu'à une partie de mon id_com et de le comparer avec mon login.
Du moins c'est comme ça que je le vois...
Peut-être que je me trompe sur l'utilisation de cette fonction... Peux-tu développer stp?