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

 


Débat n°1




Attention si vous cliquez sur "voir les résultats" vous ne pourrez plus voter

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  14  15  16  ..  21  22  23  24  25  26
Auteur Sujet :

BlaBla@SQL

n°2189276
Shinuza
This is unexecpected
Posté le 07-05-2013 à 17:56:55  profilanswer
 

Reprise du message précédent :

Volkhen a écrit :


 :(  
Pourquoi pas une seconde table où tu ne mets que les données à chercher en fulltext, petits triggers pour qu'elle soit constamment en phase avec la véritable table. Tu utilises la copie avec index fulltext uniquement pour les recherches.
Ce qui prépare la migration vers du solr.

Solr est overkill pour ce que je veux faire. J'ai pas non plus besoin d'une seconde table simplement parce que l'ORM est infoutu de comprendre que je veux un index de type FULLTEXT


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
mood
Publicité
Posté le 07-05-2013 à 17:56:55  profilanswer
 

n°2189964
Shinuza
This is unexecpected
Posté le 13-05-2013 à 16:28:59  profilanswer
 

Code :
  1. UPDATE Ville v SET zipcode = LPAD(v.zipcode, 5, '0')


 
Dites, c'est normal que ça fasse queudal?


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°2189966
skeye
Posté le 13-05-2013 à 16:31:49  profilanswer
 

Shinuza a écrit :

Code :
  1. UPDATE Ville v SET zipcode = LPAD(v.zipcode, 5, '0')
 

Dites, c'est normal que ça fasse queudal?

 

Non. Sauf s'ils faisaient déjà tous 5 caractères.[:jean-guitou]
Ca fait vraiment rien, ou alors c'est seulement ton client qui t'affiche la même chose? [:doc petrus]

Message cité 1 fois
Message édité par skeye le 13-05-2013 à 16:32:10

---------------
Can't buy what I want because it's free -
n°2189967
Shinuza
This is unexecpected
Posté le 13-05-2013 à 16:36:37  profilanswer
 

skeye a écrit :


 
Non. Sauf s'ils faisaient déjà tous 5 caractères.[:jean-guitou]
Ca fait vraiment rien, ou alors c'est seulement ton client qui t'affiche la même chose? [:doc petrus]

J'ai rajouté
 

Code :
  1. WHERE LENGTH(v.zipcode) < 5


 

[2013-05-13 16:32:31] 3629 row(s) affected in 130 ms


 
Mais  
 

Code :
  1. SELECT COUNT(*) FROM Ville WHERE LENGTH(zipcode) < 5


 

3629


 

Spoiler :

Tu viens au Basket?  :o


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°2189968
skeye
Posté le 13-05-2013 à 16:38:17  profilanswer
 

c'est quoi comme sgbd? Le type du champ? [:petrus dei]
 

Spoiler :

nope :o


---------------
Can't buy what I want because it's free -
n°2189969
flo850
moi je
Posté le 13-05-2013 à 16:38:19  profilanswer
 

zipcode est bien  un char/varchar ?


---------------

n°2189970
Shinuza
This is unexecpected
Posté le 13-05-2013 à 16:40:07  profilanswer
 

Enfoiré c'était un int, il me dit rien ce con :o


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°2189971
skeye
Posté le 13-05-2013 à 16:40:20  profilanswer
 

[:ddr555]


---------------
Can't buy what I want because it's free -
n°2189972
flo850
moi je
Posté le 13-05-2013 à 16:41:26  profilanswer
 

[:demoderateur:2]


---------------

n°2189973
masklinn
í dag viðrar vel til loftárása
Posté le 13-05-2013 à 16:44:59  profilanswer
 

Shinuza a écrit :

Enfoiré c'était un int, il me dit rien ce con :o


http://tecnoblog.net/wp-content/uploads/2011/09/mysql-fail-2-thumb-150x100.jpg

 

edit: te manque sûrement un warning planqué et un strict mode à la con [:pingouino dei]

Message cité 1 fois
Message édité par masklinn le 13-05-2013 à 16:49:43

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
mood
Publicité
Posté le 13-05-2013 à 16:44:59  profilanswer
 

n°2189974
Shinuza
This is unexecpected
Posté le 13-05-2013 à 16:57:38  profilanswer
 

 

Postgres:

 

ERROR: function length(integer) does not exist: SELECT COUNT(*) FROM Table1 WHERE LENGTH(zipcode) < 5

 


masklinn a écrit :

edit: te manque sûrement un warning planqué et un strict mode à la con [:pingouino dei]


Je peux pas te dire, mon mysql est locké depuis 10 bonnes minutes à cause du alter [:ddr555]

Message cité 1 fois
Message édité par Shinuza le 13-05-2013 à 17:00:44

---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°2189976
flo850
moi je
Posté le 13-05-2013 à 17:06:12  profilanswer
 

C'est pas pour rien que myqsl va bien avec PHP


---------------

n°2189978
skeye
Posté le 13-05-2013 à 17:24:38  profilanswer
 

flo850 a écrit :

C'est pas pour rien que myqsl va bien avec PHP


bof, oracle ne dit pas grand chose non plus, je pense, là-dessus...length(int) fonctionne sans rien demander, et l'affectation string=>int doit passer aussi, tant que le format du string est ok...[:joce]


---------------
Can't buy what I want because it's free -
n°2189979
flo850
moi je
Posté le 13-05-2013 à 17:27:42  profilanswer
 

SQL server aussi l'accepte sans broncher


---------------

n°2189980
masklinn
í dag viðrar vel til loftárása
Posté le 13-05-2013 à 17:28:03  profilanswer
 

Shinuza a écrit :

 

Postgres:

 

ERROR: function length(integer) does not exist: SELECT COUNT(*) FROM Table1 WHERE LENGTH(zipcode) < 5




Ouaip, et

> UPDATE Ville v SET zipcode = LPAD(v.zipcode, 5, '0');
ERROR:  function lpad(integer, integer, unknown) does not exist
LINE 1: UPDATE Ville v SET zipcode = LPAD(v.zipcode, 5, '0');
                                     ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.


Message édité par masklinn le 13-05-2013 à 17:28:15

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2189987
Shinuza
This is unexecpected
Posté le 13-05-2013 à 18:17:33  profilanswer
 

http://wekeroad.com/images/postgres.jpeg


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°2189991
masklinn
í dag viðrar vel til loftárása
Posté le 13-05-2013 à 18:43:41  profilanswer
 

MEANWHILE, http://www.postgresql.org/docs/dev [...] e-9-3.html


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°2189995
Shinuza
This is unexecpected
Posté le 13-05-2013 à 20:10:43  profilanswer
 

J'ai déjà fait du GIS avec Postgresql mais pas avec Mysql, des retours là dessus?
 
Je veux faire une recherche par ville ou par departement/region et par radius autour d'un point.
 
J'ai déjà la plupart de mes points GPS (le reste ce sont des patelins, donc j'utilise Google pour combler les trous), le truc que je sais pas c'est comment placer/convertir ses points sur un model qui permette de faire mes recherches.
 
i.e:  Comment créer un Point "Paris" qui soit à l'intérieur de d'un Polygon "IDF"?


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°2190022
flo850
moi je
Posté le 13-05-2013 à 23:03:29  profilanswer
 

les derniers retours que j'ai eu de mysql spatial n’étaient pas bon du bons ( je crois que c'est 0x90 qui l'avait dit)


---------------

n°2190107
Shinuza
This is unexecpected
Posté le 14-05-2013 à 13:55:25  profilanswer
 

Bon, j'ai dégagé la recherche par region/département, je ferais simplement une jointure sur les tables correspondantes pour récupérer une liste de ville correspondantes.
 
Par contre pour la recherche par proximité:
 
http://www.arubin.org/files/geo_search.pdf
 
Sous forme de fonction ça donne ça ( à voir le type des paramètres );
 

Code :
  1. DROP FUNCTION IF EXISTS distance;
  2.  
  3. CREATE FUNCTION distance(
  4.  orig_lat VARCHAR(20),
  5.  orig_lon VARCHAR(20),
  6.  dest_lat VARCHAR(20),
  7.  dest_lon VARCHAR(20)) RETURNS FLOAT
  8.  
  9. RETURN 3956 * 2 * ASIN(
  10.  SQRT(
  11.        POWER(SIN((orig_lat - ABS(dest_lat)) * PI()/180 / 2), 2)
  12.      + COS(orig_lat * PI()/180 )
  13.      * COS(ABS(dest_lat) *   PI()/180)
  14.      * POWER(SIN((orig_lon - dest_lon) *   PI()/180 / 2), 2)
  15.  )
  16. );


Code :
  1. SELECT *, distance('44.873807','-0.597832', v.lat, v.lon) AS dist FROM Ville v HAVING dist < 5;


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°2190108
skeye
Posté le 14-05-2013 à 14:04:36  profilanswer
 

Shinuza a écrit :


Code :
  1. SELECT *, distance('44.873807','-0.597832', v.lat, v.lon) AS dist FROM Ville v HAVING dist < 5;



 
Pourquoi having au lieu de where, je rate un truc? :??:


---------------
Can't buy what I want because it's free -
n°2190111
Shinuza
This is unexecpected
Posté le 14-05-2013 à 14:24:33  profilanswer
 

skeye a écrit :


 
Pourquoi having au lieu de where, je rate un truc? :??:

Non, t'as raison, my bad.


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°2190113
skeye
Posté le 14-05-2013 à 14:29:38  profilanswer
 

Par contre ça risque pas d'être vachement lent, tout ça? J'imagine que t'en as un paquet, de villes...:/
Remarque t'as toujours l'option de précalculer les distances entre villes une à une plus tard si jamais ça s'avère trop lent...[:joce]


---------------
Can't buy what I want because it's free -
n°2190125
Shinuza
This is unexecpected
Posté le 14-05-2013 à 16:03:25  profilanswer
 

C'est assez lent, mais par contre j'ai les champs lat, lon en VARCHAR, me demande si ça boosterait pas un peu de convertir le truc en FLOAT.

 

Sinon c'est bien HAVING qu'il faut mettre, ça doit etre considéré comme une fonction d'aggrégat.

 
Citation :

15 rows in set (0.37 sec)


Code :
  1. SELECT count(id) FROM Ville;



+----------+
| count(*) |
+----------+
|    34487 |
+----------+


Message édité par Shinuza le 14-05-2013 à 16:08:20

---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°2190133
skeye
Posté le 14-05-2013 à 16:14:46  profilanswer
 

ça pourrait être pire...faut juste pas avoir 40 appels par seconde, quoi.:o


---------------
Can't buy what I want because it's free -
n°2190664
Shinuza
This is unexecpected
Posté le 17-05-2013 à 16:15:53  profilanswer
 

Y'a pas un truc pour faire un ORDER BY sur la likeliness d'un LIKE 'foo%'?


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°2190671
skeye
Posté le 17-05-2013 à 16:26:34  profilanswer
 

Shinuza a écrit :

Y'a pas un truc pour faire un ORDER BY sur la likeliness d'un LIKE 'foo%'?


pas compris. Un exemple de pseudo-requete et de résultat souhaité? :D


---------------
Can't buy what I want because it's free -
n°2190694
Shinuza
This is unexecpected
Posté le 17-05-2013 à 17:23:38  profilanswer
 

skeye a écrit :


pas compris. Un exemple de pseudo-requete et de résultat souhaité? :D


Code :
  1. SELECT * FROM Matable m WHERE m.mon_champ LIKE 'foobar%' AS likely ORDER BY likely DESC;


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°2190695
Volkhen
Posté le 17-05-2013 à 17:28:02  profilanswer
 

Shinuza a écrit :


Code :
  1. SELECT * FROM Matable m WHERE m.mon_champ LIKE 'foobar%' AS likely ORDER BY likely DESC;



Non mais LIKE c'est pas du fulltext.


---------------
Main/Alt1/Alt2/Alt3
n°2190698
Shinuza
This is unexecpected
Posté le 17-05-2013 à 17:39:34  profilanswer
 

Volkhen a écrit :


Non mais LIKE c'est pas du fulltext.

Merci de ta contribution. Mais fulltext me renvoit des trucs un peu moisis, et renverra rien si j'ai 50% ma recherche matche plus de 50% de la table (MySQL ftw)


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°2190704
Volkhen
Posté le 17-05-2013 à 17:56:49  profilanswer
 

Shinuza a écrit :

Merci de ta contribution. Mais fulltext me renvoit des trucs un peu moisis, et renverra rien si j'ai 50% ma recherche matche plus de 50% de la table (MySQL ftw)


 [:dominique webb] SOLR  [:dominique webb]


---------------
Main/Alt1/Alt2/Alt3
n°2190706
Shinuza
This is unexecpected
Posté le 17-05-2013 à 18:02:04  profilanswer
 

Overkill. C'est pour de l'autocomplétion.


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°2190709
Volkhen
Posté le 17-05-2013 à 18:06:31  profilanswer
 

Shinuza a écrit :

Overkill. C'est pour de l'autocomplétion.


C'est sûr que c'est overkill. Mais juste pour l'expérience, je conseille tout de même d'essayer.
Mise en place d'un tomcat, un script d'import, un script d'update et un cron pour lancer les update régulièrement. C'est moins chiant que d'essayer d'utiliser du SQL pour un truc qu'il n'aime pas.
Et une fois implémenté pour l'auto-complétion, rien n'empêche de l'utiliser pour plus de choses.


---------------
Main/Alt1/Alt2/Alt3
n°2190727
skeye
Posté le 17-05-2013 à 20:17:29  profilanswer
 

Shinuza a écrit :


Code :
  1. SELECT * FROM Matable m WHERE m.mon_champ LIKE 'foobar%' AS likely ORDER BY likely DESC;



un levenshtein/jaro_winkler ou assimilé dans le select, et order selon cette colonne.:o


---------------
Can't buy what I want because it's free -
n°2190757
Shinuza
This is unexecpected
Posté le 18-05-2013 à 00:12:23  profilanswer
 

skeye a écrit :


un levenshtein/jaro_winkler ou assimilé dans le select, et order selon cette colonne.:o

OK, je vais faire ça côté front alors.


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°2191951
LeRiton
Posté le 28-05-2013 à 15:02:34  profilanswer
 

Citation :

Generally it is good practice to store date and time in UTC time zone in database.


 
Discuss.
 
En particulier, je stocke des événements relatifs à mes utilisateurs, genre "s'est gratté la tête le lundi 12 janvier à 16h46". Aujourd'hui, j'y ajoute la TZ "+02" (type PostgreSQL "timestamp with time zone" ).
 
Côté applicatif, c'est du Java + Joda Time.
 
Sur le thread http://stackoverflow.com/q/2532729, on conseille d'inclure l'offset + DST et d'enregistrer le nom de la TZ pour pouvoir reconstruire le timestamp d'origine. Ça va un peu à l'encontre de l'assertion de début de post, que j'ai rencontré un peu partout.
 
Du coup, UTC ou UTC+TZ ?

n°2191965
Farian
Posté le 28-05-2013 à 15:48:16  profilanswer
 

LeRiton a écrit :

Citation :

Generally it is good practice to store date and time in UTC time zone in database.


 
Discuss.
 
En particulier, je stocke des événements relatifs à mes utilisateurs, genre "s'est gratté la tête le lundi 12 janvier à 16h46". Aujourd'hui, j'y ajoute la TZ "+02" (type PostgreSQL "timestamp with time zone" ).
 
Côté applicatif, c'est du Java + Joda Time.
 
Sur le thread http://stackoverflow.com/q/2532729, on conseille d'inclure l'offset + DST et d'enregistrer le nom de la TZ pour pouvoir reconstruire le timestamp d'origine. Ça va un peu à l'encontre de l'assertion de début de post, que j'ai rencontré un peu partout.
 
Du coup, UTC ou UTC+TZ ?


 
Pour moi, les deux. On stocke les dates en UTC pour être sûr de l'unicité (DST) et de l'ordre (TZ), calculer des différences entre deux dates. J'aurais tendance à dire que c'est la base.
 
Ensuite, quant à la pertinence de stocker aussi le TZ du lieu dans lequel l'action a eu lieu, cela correspond, selon moi, plus à un besoin applicatif, qui est d'afficher pour un événement l'heure locale reliée au lieu où l'action a été effectuée / observée.

n°2191987
Shinuza
This is unexecpected
Posté le 28-05-2013 à 16:51:14  profilanswer
 

LeRiton a écrit :

Citation :

Generally it is good practice to store date and time in UTC time zone in database.

 

Discuss.

 

En particulier, je stocke des événements relatifs à mes utilisateurs, genre "s'est gratté la tête le lundi 12 janvier à 16h46". Aujourd'hui, j'y ajoute la TZ "+02" (type PostgreSQL "timestamp with time zone" ).

 

Côté applicatif, c'est du Java + Joda Time.

 

Sur le thread http://stackoverflow.com/q/2532729, on conseille d'inclure l'offset + DST et d'enregistrer le nom de la TZ pour pouvoir reconstruire le timestamp d'origine. Ça va un peu à l'encontre de l'assertion de début de post, que j'ai rencontré un peu partout.

 

Du coup, UTC ou UTC+TZ ?

Je pars du principe que quand c'est relatif à un seul utilisateur tu stockes tout en UTC et t'ajoutes la TZ à la volée, puisqu'elle peut varier. Après le DST est appliqué en fonction de la TZ, donc faut revenir à l'UTC à partir de là.

 

Edit: En fait tout pareil que Farian

Message cité 1 fois
Message édité par Shinuza le 28-05-2013 à 16:57:31

---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°2192580
LeRiton
Posté le 03-06-2013 à 09:46:29  profilanswer
 

Farian a écrit :


 
Pour moi, les deux. On stocke les dates en UTC pour être sûr de l'unicité (DST) et de l'ordre (TZ), calculer des différences entre deux dates. J'aurais tendance à dire que c'est la base.
 
Ensuite, quant à la pertinence de stocker aussi le TZ du lieu dans lequel l'action a eu lieu, cela correspond, selon moi, plus à un besoin applicatif, qui est d'afficher pour un événement l'heure locale reliée au lieu où l'action a été effectuée / observée.


 

Shinuza a écrit :

Je pars du principe que quand c'est relatif à un seul utilisateur tu stockes tout en UTC et t'ajoutes la TZ à la volée, puisqu'elle peut varier. Après le DST est appliqué en fonction de la TZ, donc faut revenir à l'UTC à partir de là.
 
Edit: En fait tout pareil que Farian


 
Je lis vos réponses sur le tard.
 
Donc plutôt que '2013-05-15 13:55:00+02', je stocke '2013-05-15 11:55:00' en timestamp et '+02' dans une autre colonne ? Décimal signé ?

n°2194619
flo850
moi je
Posté le 17-06-2013 à 14:58:08  profilanswer
 

Est ce qu'il y a un équivalent a ON DUPLICATE KEY UPDATE en postgresql ?  
 


---------------

n°2194624
masklinn
í dag viðrar vel til loftárása
Posté le 17-06-2013 à 15:32:59  profilanswer
 

flo850 a écrit :

Est ce qu'il y a un équivalent a ON DUPLICATE KEY UPDATE en postgresql ?  
 


Pas vraiment :/ http://www.postgresql.org/docs/cur [...] RT-EXAMPLE


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  14  15  16  ..  21  22  23  24  25  26

Aller à :
Ajouter une réponse
 

Sujets relatifs
Requete SQL de selection complexe[SQL SERVER] Ajout d'une colonne en PS...mais inutilisable
[ODBC] DSN pour se connecter à une base SQL[PDO/SQL] Aide selection et classement (JOIN ??)
Problème conditions requete SQLSQL/PHP BDD de réservation de chambres
Jointure 'LIKE' SQL => BOtable SQL Ajouter une colonne au lieu de creer une nouvelle table
Requête SQL complexe 
Plus de sujets relatifs à : BlaBla@SQL


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)