2010-05-06 56 views
-4

该数据库包括表一中的行: HTML/CSS/JAVA/PHPDELETE语句从行看重

如何使用SQL查询中删除的 “java”?

其结果将是: HTML/CSS/PHP

+0

为了澄清

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 

OUTPUT你有一个有时包含'html/css/java/php'并想从所有事件中删除'java /'的varchar列的表? – ahsteele 2010-05-06 15:11:46

+0

这是一个单行与文本'HTML/Css/Java/PHP'或多行? – 2010-05-06 15:12:00

+0

一个例子本来不错。 – aioobe 2010-05-06 15:14:41

回答

2

使用正则表达式的数据库支持一些口味试试这个(SQL Server语法,问题并没有指定哪个数据库):

YourColumn 
------------------- 
html/css/php 
html/css 
php 

html/css/php 

(5 row(s) affected) 
3

DELETE详见http://www.w3schools.com/sql/sql_delete.asp

DELETE FROM TableName WHERE yourColumn = 'java' 
+0

这个问题很难理解,但这个答案是如何解决这个问题的?这个问题说,你从行数据开始:'html/css/java/php',他们想把它改成一行数据:'html/css/php'? – 2010-05-06 15:36:43

+0

我读了复数的“行”,并且假设之后引用了多行。 (但是,现在我看到,他写了“一行”,这使得它更加清晰!)无论如何,如果他的意图是更新“html/css/java/php”为“html/css/php”,我怀疑他会用“删除”这个词,但我当然可能是错的。 – aioobe 2010-05-06 15:56:31

+0

我现在可以看到你的观点了,我猜英文不是OP的母语,这种微妙的细微差别在翻译中丢失了。 – 2010-05-06 17:21:58

1

我不完全确定你在问什么,因为你的问题不是很清楚。

如果“HTML”,“CSS”,“Java”的,和“PHP”是同一列不同的价值观,这是你想要什么:

DELETE FROM table_name WHERE column_name = 'java'; 

你需要更换“表格名“与您的表名称和”column_name“与您的列的名称。

0

我不知道你想达到...如果你需要删除列的Java“,它应该看起来像

ALTER TABLE table1 DROP COLUMN java 
1

如果有4行,然后Aioobe的答案将把握好东西。如果您想更新列,但离开了Java的,那么你应该使用:

UPDATE table_name SET column_name = Replace(column_name,'java/','') 

如果你想获取的信息留出的数据,然后使用:

SELECT Replace(column_name,'java/','') column_name FROM table_name 

HTH

+0

+1 ...似乎用户想要删除一个子字符串。用空白替换它应该可以做到这一点! – 2010-05-06 15:28:47

+0

如果'java'是该列中的最后一项(无尾随“/”),该怎么办? – 2010-05-06 15:37:49

+0

@ KM-我刚刚回答了确切的情况。您的解决方案将保持良好,然后:-) – Raja 2010-05-06 16:18:29

0

这里的另一种猜测:

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> 

还有其他方法可以做同样的事情。例如,在一个类似的方式