标签: sql-update

更新除NULL之外的数据库表

我有两个具有相同列的表

tbl_source (ID, Title)

tbl_dest (ID, Title)
Run Code Online (Sandbox Code Playgroud)

我想从tbl_source更新tbl_dest标题,其中dest和source中的id匹配.但是,如果源标题为null(或空白),我不想更新dest标题.

我有这个:

UPDATE    tbl_dest
SET              tbl_dest.Title =
      (SELECT     title
        FROM          tbl_source
        WHERE      tbl_dest.id = tbl_source.ID and tbl_source.title is not null)
Run Code Online (Sandbox Code Playgroud)

但它继续插入空值.

我该如何构建这样的查询?

我正在使用SQL Server 2005.

谢谢.

sql sql-server-2005 sql-update

0
推荐指数
1
解决办法
122
查看次数

行UPDATE上的MySQL UPDATE TIMESTAMP,即使所有其他行数据保持不变?

我有一张带时间戳的表.

时间戳设置为" ON UPDATE CURRENT_TIMESTAMP."

当我在一行上运行更新,其数据与该行中已有的数据相同时,我仍然希望更新TIMESTAMP.它不是.为什么不呢?如果数据不同,则更新就好了.

我意识到我可以强制更新TIMESTAMP = now(),但我想了解MySQL正在做什么.

mysql sql-update

0
推荐指数
1
解决办法
698
查看次数

SQL Update不起作用.为什么?

只是一个简单的SQL问题 - 但我无法弄清楚什么是错的

"UPDATE veranstaltungen
    SET name = '$nameV', SET Datum = '$DatumV', SET beschreibung = '$beschreibungV'
 WHERE id = '$id'"
Run Code Online (Sandbox Code Playgroud)

我想更新id为$ id的表格行.但这里什么都没发生?变量都是正确的

php sql sql-update

0
推荐指数
1
解决办法
292
查看次数

MySQL Update不更新任何行

这是我遇到的一个奇怪的问题,我有一个表并尝试执行MySQL更新查询,但是,PHPMyAdmin一直说受影响的0行。

表:

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `userid` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `last_login` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=55069 ;

--
-- Dumping data for table `users`
--

INSERT INTO `users` (`id`, `userid`, `name`, `last_login`) VALUES
(1, 55068, 'temp', '2012-02-02 09:04:50');
Run Code Online (Sandbox Code Playgroud)

查询:

UPDATE `users` SET name='xorinzor' AND last_login=NOW() WHERE userid='55068'
Run Code Online (Sandbox Code Playgroud)

没有错误返回,只是什么也没有发生,也不知道为什么会这样。

问候,乔林

mysql sql-update

0
推荐指数
1
解决办法
4199
查看次数

MySQL使用文本和另一个字段设置值

好吧,不太清楚如何解释它,但我会尽我所能......

我想运行MySQL查询将名称设置为'Unmanaged Team [id]'我的想法最初是使用以下(但它没有按预期工作).

mysql_query("UPDATE `table` SET `field`='Unmanaged Team'+`id`");
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一些变化,但我似乎无法弄清楚,我不想一个接一个地做,因为那只会使用太多的查询来确定我可以做的事情可以在1.

非常感谢您花些时间帮助我:)

mysql sql-update

0
推荐指数
1
解决办法
2686
查看次数

如何更新和格式化SQL Server中列的每个字段?

我想修改列中的每个字段以在第4个字符后添加空格.

AAAAFoo => AAAA Foo

TOTOBar => TOTO Bar

我想我应该使用正则表达式或类似的东西使用更新,但我不知道如何...

regex sql sql-server sql-update

0
推荐指数
1
解决办法
1110
查看次数

如何更新SQL Server 2005中的不同列?

在我的表中,我有一个Segment_No重复的列.现在我想更新那些重复项.

表

例如:值249X5601存在于两行中.我想将第二个值更改为249X5601R

sql replace sql-server-2005 distinct sql-update

0
推荐指数
1
解决办法
1173
查看次数

UPDATE SET获取MySQL错误

嗨,我有一个读取计数器,但我总是得到一个MySQL错误:

MySQL错误:您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在"读取"附近使用正确的语法.VALUES('2')WHERE id ='20''在第1行

    $reads = $row['reads']+1;
    $newsid = $row['id'];                             

    if(!$query = $db->query("UPDATE cmsss_news_articles SET reads = '$reads' WHERE id = '$newsid'")) {
    echo "<center><b>Error, cant update row</b></center>";
    } 
Run Code Online (Sandbox Code Playgroud)

你能帮帮我哪里出错吗?

php mysql sql-update

0
推荐指数
1
解决办法
50
查看次数

如何使用新值更新表中的记录列表,具体取决于旧值

我有一个名为acc1152的表,字段为accno.取决于该字段的值,我需要用新值替换它.这些是我需要更新的值

old value   new value
  7007        4007
  7008        4008
  4008        7
  7009        4009
  7011        4011
  4011        ' '
  7010        4010
  4010        1
  7016        4016
  4016        1
  4506        4006
  4512        4012
Run Code Online (Sandbox Code Playgroud)

如果记录在其accno字段中具有上面的旧值,则该accno需要用新值替换

如何编写一个可以完成此任务的查询?

sql-server sql-update

0
推荐指数
1
解决办法
1048
查看次数

foreach我的表行并更新我的ROW_NUMBER列

我想创建一个脚本pl/sql,我可以在其中修改我的列ROW_NUMBER的值(第一次ROW_NUMBER的值等于NULL).

这是我的表'A'的结构:

CREATE TABLE A
   (
    "NAME" VARCHAR2(25 BYTE), 
    "NUM" NUMBER(10,0)
   )
Run Code Online (Sandbox Code Playgroud)

如果Column'NAME'等于'DEB',我想预先处理表A的所有行并将我的列'NUM'递增1.

我想得到如下结果:

在此输入图像描述

我创建了一个pl/sql脚本:

DECLARE
 INcrmt NUMBER(4):=1;
 line WORK_ODI.TEST_SEQ%ROWTYPE;--before fetch it returns 0
 CURSOR c_select IS
 SELECT ROW_NUMBER,VALUE FROM WORK_ODI.TEST_SEQ;
BEGIN
 OPEN c_select;
  LOOP
   FETCH c_select INTO line;
   DBMS_OUTPUT.PUT_LINE(line.VALUE);
   if line.VALUE like '%DEB%'
   then
    UPDATE WORK_ODI.TEST_SEQ SET ROW_NUMBER = INcrmt WHERE VALUE=line.VALUE;
    INcrmt := INcrmt + 1;
   end if;
   if line.VALUE not like '%DEB%'
    then
    UPDATE WORK_ODI.TEST_SEQ SET ROW_NUMBER = INcrmt WHERE VALUE=line.VALUE;
   end if;
   EXIT WHEN c_select%NOTFOUND;
  END …
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql sql-update

0
推荐指数
1
解决办法
97
查看次数

标签 统计

sql-update ×10

sql ×5

mysql ×4

php ×2

sql-server ×2

sql-server-2005 ×2

distinct ×1

oracle ×1

plsql ×1

regex ×1

replace ×1