2012-03-23 68 views
0

为什么下面的SQLite3查询失败,出现错误:sqlite3的级联查询某种原因失败

SQL Exception: near "||": syntax error

我的查询:

UPDATE test 
SET money_links||='http://www.test.com', u_links||='http://www.test.com' 
WHERE u_tag='test2'; 

表测试的结构是:

CREATE TABLE IF NOT EXISTS test(u_tag TEXT PRIMARY KEY, money_links TEXT, u_links TEXT); 
+0

什么是'||'为?我从来没有这样。 – Dikei 2012-03-23 09:02:37

+0

它用于连接,所以它执行与'+ ='相同的功能。 – 2012-03-23 09:03:36

+2

它失败,因为这不是SQL或SQLite语法。 – Hogan 2012-03-23 09:04:06

回答

1

你想要做这样的事吗?

UPDATE test 
SET money_links = money_links || 'http://www.test.com', 
    u_links = u_links || 'http://www.test.com' 
WHERE u_tag='test2'; 

恐怕SQL不允许像一些真正的编程语言那样的“增量连接”。

2
UPDATE test 
SET money_links = money_links + 'http://www.test.com', u_links = u_links+ 'http://www.test.com' 
WHERE u_tag='test2'; 

UPDATE test 
SET money_links = ISNULL(money_links,'') + 'http://www.test.com', u_links = ISNULL(u_links,'') + 'http://www.test.com' 
WHERE u_tag='test2'; 
+0

感谢您的答案:)查询正在执行,但它并未将money_links(或u_links)中的现有字符串与新字符串结合,而是money_links(和u_links)中的值变为'0'。你认为发生了什么? – 2012-03-23 09:23:06

+0

你有一个null开始 - 看到新的版本 – Hogan 2012-03-23 09:44:28