Afficher les x premiers mots d'un enregistrement [SQL] - SQL/NoSQL - Programmation
Marsh Posté le 19-07-2007 à 09:04:51
30 premiers caractères: select substring(tonChamps,1,30) ...
30 premiers mots: pas vraiment possible directement dans la directement dans une requête ( a moins de faire une procédure). Pourquoi ne pas le faire coté traitement?
Note: LIMIT est tout sauf du SQL. C'est une instruction "spécifique" MySQL.
Marsh Posté le 19-07-2007 à 09:15:43
pour le nombre de mot c'est un peu bancal mais un truc du genre un peu plus affiné devrait pouvoir marcher, il y a surement des cas spéciaux a gerer.
en oracle ca donnerait +/-:
Code :
|
ca correspond a aller chercher la position du 30ème espace, en remplacant d'abord les ' par un espace pour que "l'espace" soit consideré comme deux mots, et des qu'on a ce nombre de caracteres on va chercher la sous-chaine.
la il y a des adaptations a faire mais l'idée est la
Marsh Posté le 19-07-2007 à 09:26:41
c'est possible ce que tu dis mais dans la réalité c'est trop compliqué à gérer car il faut également prendre en compte la ponctuation ou les problèmes genre double espace.
sinon dans ton machin je pense qu'il y a deux erreurs
Je maintiens que c'est pas une bonne idée de le faire dans le select
Marsh Posté le 19-07-2007 à 09:34:00
anapajari a écrit : 30 premiers caractères: select substring(tonChamps,1,30) ... |
oops autant pour moi. ca fait tellement longtemps que je ne fais plus que du MySQL que j'ai généralisé le LIMIT
sinon pour le substring, ca marche impecable, merci
je vais essayer de bidouiller l'autre soluce pour selectionner que les mots
Marsh Posté le 19-07-2007 à 08:50:38
Bonjour à tous,
Vous connaissez certainement la fonction LIMIT de SQL. J'aimerais savoir s'il existe de la meme facon une fonction qui me permettrait de sélectionner qu'une partie d'une valeur d'un enregistrement.
Je vais m'illustrer :
Soit une table MA_TABLE avec un champ MON_CHAMP de type LONGTEXT
Je voudrais faire un SELECT sur MON_CHAMP de manière à ce qu'il me retourne disons les 30 premiers caractères (ou 30 premiers mots serait encore mieux). Est ce que cela est possible directement via SQL ?
Merci de vos réponses