我有两个具有相同列的表
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.
谢谢.
我有一张带时间戳的表.
时间戳设置为" ON UPDATE CURRENT_TIMESTAMP."
当我在一行上运行更新,其数据与该行中已有的数据相同时,我仍然希望更新TIMESTAMP.它不是.为什么不呢?如果数据不同,则更新就好了.
我意识到我可以强制更新TIMESTAMP = now(),但我想了解MySQL正在做什么.
只是一个简单的SQL问题 - 但我无法弄清楚什么是错的
"UPDATE veranstaltungen
SET name = '$nameV', SET Datum = '$DatumV', SET beschreibung = '$beschreibungV'
WHERE id = '$id'"
Run Code Online (Sandbox Code Playgroud)
我想更新id为$ id的表格行.但这里什么都没发生?变量都是正确的
这是我遇到的一个奇怪的问题,我有一个表并尝试执行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查询将名称设置为'Unmanaged Team [id]'我的想法最初是使用以下(但它没有按预期工作).
mysql_query("UPDATE `table` SET `field`='Unmanaged Team'+`id`");
Run Code Online (Sandbox Code Playgroud)
我已经尝试了一些变化,但我似乎无法弄清楚,我不想一个接一个地做,因为那只会使用太多的查询来确定我可以做的事情可以在1.
非常感谢您花些时间帮助我:)
我想修改列中的每个字段以在第4个字符后添加空格.
AAAAFoo => AAAA Foo
TOTOBar => TOTO Bar
我想我应该使用正则表达式或类似的东西使用更新,但我不知道如何...
在我的表中,我有一个Segment_No重复的列.现在我想更新那些重复项.

例如:值249X5601存在于两行中.我想将第二个值更改为249X5601R
嗨,我有一个读取计数器,但我总是得到一个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)
你能帮帮我哪里出错吗?
我有一个名为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需要用新值替换
如何编写一个可以完成此任务的查询?
我想创建一个脚本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-update ×10
sql ×5
mysql ×4
php ×2
sql-server ×2
distinct ×1
oracle ×1
plsql ×1
regex ×1
replace ×1