2017-03-16 82 views
0

我有一個名爲Blog的表,它具有一個名爲Posts的List屬性。帖子是Post類型的,也是另一個表格。Sql UPDATE查詢將X追加到列的末尾

我想寫的是預先考慮每一個博客的名稱以「X」,如果他們至少有一個帖子說是以前21/3月/ 2015年

UPDATE tblblog 
    SET tblblog.Name = CONCAT (tblblog.Name, 'X') 
WHERE tblblog.post.time < Convert(datetime, ''21/03/2015") 

我是新來的SQL這是一個SQL更新查詢最好的辦法

+1

標記您正在使用的dbms。這裏使用了一些產品特定功能。 – jarlh

+1

請發佈你使用的RDBMS和版本 – Lamak

+1

前面的意思是,append意味着你的查詢正在追加,但你的問題說prepend ......你想要哪個pend? – SqlZim

回答

0

如果您使用下面的查詢使用SQL Server:

UPDATE tblblog SET tblblog.Name = tblblog.Name + 'X' 
WHERE DATEDIFF(DAY,tblblog.post.time,'2015-03-21') <= 0 

F你使用MySQL使用下面的查詢:

UPDATE tblblog SET tblblog.Name = CONCAT(tblblog.Name,'X') 
WHERE DATE(tblblog.post.time) < '2015-03-21' 
0

以下列爲模板。確切的語法取決於您正在使用的實際rdbms。此建議未解決可能的性能問題

UPDATE tblblog t 
    SET t.Name = CONCAT ('X', t.Name) 
WHERE EXISTS (
      SELECT 1 
      FROM tblblog st 
      WHERE st.Name = t.Name 
       AND st.post.time < Convert(datetime, '21/03/2015') 
     );