SQL查询删除不需要的部分

时间:2013-10-09 14:58:47

标签: sql sqlite

您好我有一个名为 agents2 的表格,其结构如下,

agents2
---------------
id , title

在table.title下有几条记录包含(www / http..etc)例如

title= www.postgre.com

我希望看到的是

title= postgre.com

是否存在查询,如果我执行那将删除www.部分。谢谢你的帮助。

6 个答案:

答案 0 :(得分:1)

你可以在SQL Server中尝试这样的东西

SELECT REPLACE ( title , 'www.' , '' ), id from agents2

例如

SELECT REPLACE ( 'www.example.com' , 'www.' , '' )

会给你'example.com'

不幸的是,它将取代所有出现的'www。'

例如

SELECT REPLACE ( 'www.examplewww.com' , 'www.' , '' )

会给你'examplecom'

有关更多示例,请参阅http://technet.microsoft.com/en-us/library/ms186862.aspx

答案 1 :(得分:1)

UPDATE agents2 SET title = replace(title, 'www.', '') WHERE title LIKE 'www.%';       

答案 2 :(得分:1)

SQL Fiddle

SQLite(WebSQL)架构设置

CREATE TABLE agents2
    ("id" INTEGER, "title" TEXT(24));

INSERT INTO agents2 ("id", "title") VALUES (1, 'www.postgre.com');
INSERT INTO agents2 ("id", "title") VALUES (2, 'http://stackoverflow.com');
INSERT INTO agents2 ("id", "title") VALUES (3, 'http://www.sqlfiddle.com');
INSERT INTO agents2 ("id", "title") VALUES (4, 'http://www.com-www.com/');

查询1

SELECT REPLACE ( ' '||REPLACE ( title , 'http://' , '' ) , ' www.' , '' )
FROM agents2

<强> Results

| REPLACE ( ' '||REPLACE ( title , 'http://' , '' ) , ' www.' , '' ) |
|--------------------------------------------------------------------|
|                                                        postgre.com |
|                                                  stackoverflow.com |
|                                                      sqlfiddle.com |
|                                                       com-www.com/ |

答案 3 :(得分:0)

SQLite有一个instr()函数。所以:

instr('title= www.postgre.com','www') 

将返回'www'的起始位置。您应该能够使用它以及子字符串和连接来获得所需的值。

答案 4 :(得分:0)

SEB BINFIELD回答了我的问题。正是我需要的。感谢Fabien提供了非常实用和易于掌握的解决方案。

UPDATE agents2 SET title = replace(title, 'www.', '') WHERE title LIKE 'www.%';

答案 5 :(得分:0)

REPLACE将删除标题中出现的所有字符串。

这只会在开头删除字符串。

UPDATE agents2 SET title = SUBSTR(title, 8) WHERE title LIKE 'http://%';
UPDATE agents2 SET title = SUBSTR(title, 5) WHERE title LIKE 'www.%';