La base de données comprend une table avec des lignes: html/css/java/phpsql supprimer de lignes valeur à
Comment avec requête SQL supprimer "java"?
Le résultat serait: html/css/php
La base de données comprend une table avec des lignes: html/css/java/phpsql supprimer de lignes valeur à
Comment avec requête SQL supprimer "java"?
Le résultat serait: html/css/php
essayer cette (syntaxe SQL Server, question ne précise pas quelle base de données):
DECLARE @YourTable table (YourColumn varchar(500))
INSERT INTO @YourTable VALUES ('html/css/java/php')
INSERT INTO @YourTable VALUES ('html/css/java')
INSERT INTO @YourTable VALUES ('java/php')
INSERT INTO @YourTable VALUES ('java')
INSERT INTO @YourTable VALUES ('html/css/php')
UPDATE @YourTable
SET YourColumn=REPLACE(
REPLACE(
REPLACE(YourColumn,'/java','')
,'java/',''
)
,'java',''
)
select * from @YourTable
SORTIE
YourColumn
-------------------
html/css/php
html/css
php
html/css/php
(5 row(s) affected)
Voir http://www.w3schools.com/sql/sql_delete.asp pour plus de détails sur DELETE
.
DELETE FROM TableName WHERE yourColumn = 'java'
La question est difficile à comprendre, mais comment cette réponse répond-elle à la question? La question dit que vous commencez avec les données de ligne: 'html/css/java/php' et ils veulent le changer en une ligne avec des données:' html/css/php'? –
J'ai lu "lignes" au pluriel, et juste supposé que ce qui vient après cela fait référence à plusieurs lignes. (Maintenant, je vois, cependant, qu'il a écrit "un rang" ce qui le rend encore moins clair!) Quoi qu'il en soit, si son intention était de mettre à jour "html/css/java/php" à "html/css/php" je doute il aurait utilisé le terme "supprimer", mais je pourrais bien sûr me tromper. – aioobe
Je peux voir votre point maintenant, je suppose que l'anglais n'est pas la langue maternelle de OPs et de telles nuances subtiles ont été perdues dans la traduction. –
Je ne suis pas entièrement sûr de ce que vous demandez, parce que votre question n'est pas très claire.
Si « html », « css », « java » et « php » sont des valeurs différentes pour la même colonne, c'est ce que vous voulez:
DELETE FROM table_name WHERE column_name = 'java';
Vous devrez remplacer « nom_table "avec le nom de votre table et" column_name "avec le nom de votre colonne.
Je ne suis pas sûr de ce que vous voulez réaliser ... Si vous devez supprimer la colonne « java », il devrait ressembler à
ALTER TABLE table1 DROP COLUMN java
S'il y a 4 lignes alors la réponse de Aioobe détiendrait bien. Si vous souhaitez mettre à jour la colonne, mais laisser de Java, vous devez utiliser:
UPDATE table_name SET column_name = Replace(column_name,'java/','')
SI vous voulez récupérer les informations laissant que les données utilisent alors:
SELECT Replace(column_name,'java/','') column_name FROM table_name
HTH
+1 ... il semble que l'utilisateur souhaite supprimer une sous-chaîne. Le remplacer par du blanc devrait faire l'affaire! –
que se passe-t-il si le 'java' est le dernier élément de la colonne (pas de"/")? –
@ KM- Je viens de répondre au scénario exact. Votre solution serait bien alors :-) – Raja
Voici une autre supposition:
SQL> select * from t23
2/
WHATEVER
----------------------------------------------------------------
html/css/java/php
SQL> update t23
2 set whatever = replace(whatever, '/java', null)
3 where whatever like '%/java%'
4/
1 row updated.
SQL> select * from t23
2/
WHATEVER
----------------------------------------------------------------
html/css/php
SQL>
Il existe d'autres façons de faire la même chose. Par exemple, certaines saveurs de soutien de base de données utilisant l'expression rationnelle de la même manière
Pour vous clarifier avez une table qui a une colonne varchar qui se compose parfois de 'html/css/java/php' et qui veut enlever' java/'de toutes les occurrences? – ahsteele
S'agit-il d'une seule ligne avec le texte "html/css/java/php" ou plusieurs lignes? –
Un exemple aurait été bon. – aioobe