Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1721 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MYSQL] Clause WHERE foireuse ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MYSQL] Clause WHERE foireuse ?

n°1752128
giHefca
occupé à ne rien faire
Posté le 27-06-2008 à 09:35:49  profilanswer
 

Code :
  1. SELECT `blabla` FROM `boop` WHERE `id`='1sdq'


id est un int(11) index auto_increment
Dans la table boop, il y a une seul enregistrement id=1
 
Pourquoi cette requête me sort cet élément ?

mood
Publicité
Posté le 27-06-2008 à 09:35:49  profilanswer
 

n°1752143
mrbebert
Posté le 27-06-2008 à 10:18:25  profilanswer
 

Conversion string -> entier je pense [:figti]  

mysql> select '1toto' + 2;
+-------------+
| '1toto' + 2 |
+-------------+
|           3 |
+-------------+
1 row in set, 1 warning (0.00 sec)

n°1752175
giHefca
occupé à ne rien faire
Posté le 27-06-2008 à 11:20:39  profilanswer
 

Code :
  1. SELECT `blabla` FROM `boop` WHERE `id` = CAST('1qs' AS CHAR)


Ca me retourne toujours quelque chose, pourtant CAST('1qs' AS CHAR) = 1qs
 
Même chose avec "AS SIGNED" et "AS UNSIGNED"

n°1752186
ccp6128
Syntax error
Posté le 27-06-2008 à 11:57:57  profilanswer
 

normal, ton cast ne modifie en rien la comparaison qui est faite.  
 
Que tu castes ta chaine en char, en canard ou en poule, elle sera ensuite castée en int pour la comparer avec id qui est un int.
 
Il faudrait plutot caster le contenu de id, ou passer par une fonction de comparaison de chaines de caractères entre id et ta chaine 1qs, pour obtenir le comportement que tu souhaites.

n°1754197
MagicBuzz
Posté le 01-07-2008 à 18:54:33  profilanswer
 

:heink:
 
C'est chelou MySQL quand même...
 
Normalement, un SGBD doit tenter de suivre les règles de cast implicite habituelles, c'est à dire caster du type le plus permissif vers le type le moins permissif.
 
En gros, tu devrais avoir une erreur car il n'arrive pas à caster la chaîne en entier :heink:

n°1754215
giHefca
occupé à ne rien faire
Posté le 01-07-2008 à 19:46:02  profilanswer
 

j'ai renoncé [:spamafote]
vu que l'élément de recherche vient d'un GET, je me suis débrouillé pour que ce ne soit qu'un entier, comme ça, plus de problème


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MYSQL] Clause WHERE foireuse ?

 

Sujets relatifs
servlet et multiples connexions Mysqlaide pour recuperation donnée via explode mysql
php Unknown column in 'on clause'Clause Alter Mysql/pgsql, le comment, aide please
Accents sur mysql[MYSQL] Limite d'une table
[PHP] tableau MySQL -> formulaire -> MySQL[JSP] Mysql image dans blob
Besoin de conseils : plusieurs sites sur un serveur MySQL 
Plus de sujets relatifs à : [MYSQL] Clause WHERE foireuse ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR