2009-06-25 6 views
1

J'utilise mysql. dans un domaine que j'ai inséré des données comme chaine1 :: chaîne2 deux cordes par concated :: maintenant je veux chercher seulement la deuxième chaîne, pouvait-corps me aider pour cela, Merci à l'avanceManipulation de chaînes dans MySQL

+0

pouvez-vous donner plus de détails? quelle requête vous voulez –

Répondre

2
SELECT SUBSTRING_INDEX('string1::string2', '::', -1) 
+0

+1 Oh, cool. Je ne connaissais pas ce petit bijou. – Sampson

+0

Merci mec, ça marche vraiment .. merci beaucoup – Avinash

3

Vous réaliserez que c'est une idée terrible? Les systèmes de bases de données relationnelles ont des colonnes pour une raison. En faisant cela, vous travaillez contre le système; c'est un antipattern bien connu. Vous devriez vraiment essayer d'utiliser des colonnes séparées pour les valeurs séparées. Cela dit, vous pouvez utiliser les fonctions de manipulation de chaînes de MySQL pour récupérer les valeurs.

Voici un aperçu des fonctions de chaîne de MySQL: http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

Il y a un commentaire sur la page ci-dessus expliquant comment travailler avec eux. Ou vous pouvez utiliser SUBSTRING_INDEX(), comme explained in the other answers.

+0

Il semble que MySQL a une fonction pour accomplir cette chose. Je ne prétendrai pas que je le savais pour commencer, mais SUBSTRING_INDEX() semble réaliser cette chose très facilement. – Sampson

+0

Oups, vous avez raison, je ne le savais pas. Réponse éditée – sleske

+0

Découvert à propos de 'CONCAT()' d'ici, qui a fait ce que je voulais faire. Merci pour le lien, @sleske! – icedwater

0

Comme indiqué précédemment, c'est une conception terrible. Vous devez utiliser plusieurs colonnes pour plusieurs dates. Cela dit, vous pouvez utiliser des jokers pour trouver la valeur. Disons, par exemple, vous êtes à la recherche 09/08/2009 :: 09/09/2009,

SELECT SUBSTRING('date',-10) 
FROM myTable 
WHERE id = 1; 

qui renverrait les 10 derniers caractères de votre date. Encore une fois, ce n'est pas une «bonne» solution. Une solution goood serait de réparer la base de données elle-même.

Questions connexes