小编Jua*_*ado的帖子

SQL选择:如果存在则更新,否则插入 - 使用日期部分比较?

我需要使用以下字段更新数据库中的记录

[ID] int (AutoIncr. PK)
[ScorerID] int
[Score] int
[DateCreated] smalldatetime
Run Code Online (Sandbox Code Playgroud)

如果今天的日期存在记录(只应检查日期部分,而不是时间)和给定的记分员,我想更新这个人和今天的分数值.如果得分手今天没有记录,我想创建一个新记录.

我正在试着弄清楚如何将它放入单个(这可能吗?)sql语句中.顺便说一句,我正在使用MSSQl数据库和ExecuteNonQuery()方法来发出查询.

sql sql-server sql-update

6
推荐指数
1
解决办法
2万
查看次数

我在Oracle中加入的更新语句出了什么问题?

我正在使用Oracle 10g数据库.

我有以下两个表:

T_DEBTOR :
    - ID_DEBTOR
    - HEADER
T_ELEMENT :
    - ID_ELEMENT
    - ID_DEBTOR
    - INSURER
Run Code Online (Sandbox Code Playgroud)

这两个表使用ID_DEBTOR字段连接.

我想仅在HEADER不为空时才使用关联的T_DEBTOR.HEADER更新T_ELEMENT.INSURER值.换句话说:

If T_DEBTOR.HEADER != null
    Then T_ELEMENT.INSURER = T_DEBTOR.HEADER
    Else T_ELEMENT.INSURER is not modified!
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下SQL查询:

update
    T_ELEMENT elt
    set elt.INSURER = (
        select HEADER
            from T_DEBTOR debtor
            where
                debtor.HEADER is not null
                and debtor.ID_DEBTOR = elt.ID_DEBTOR);
Run Code Online (Sandbox Code Playgroud)

此查询适用于链接到具有HEADER非空的debtors的所有元素.但是,当T_DEBTOR.HEADER为null时,此查询将T_ELEMENT.INSURER设置为null,这是不正确的.

即:

If T_DEBTOR.HEADER != null
    Then T_ELEMENT.INSURER = T_DEBTOR.HEADER   --> This part is OK
    Else T_ELEMENT.INSURER is set to null      --> This part is …
Run Code Online (Sandbox Code Playgroud)

sql oracle sql-update

6
推荐指数
1
解决办法
1万
查看次数

更新SELECT语句的结果

Oracle允许您更新SELECT语句的结果.

UPDATE (<SELECT Statement>)
SET <column_name> = <value>
WHERE <column_name> <condition> <value>;
Run Code Online (Sandbox Code Playgroud)

我想这可以用于根据另一个表中匹配行的值更新一个表中的列.

如何调用此功能,它是否可以有效地用于大型更新,当SELECT连接多个表时是否有效,如果是,如何?

sql oracle bulk sql-update

6
推荐指数
2
解决办法
2万
查看次数

UPDATE中每个SET命令的SQL - WHERE子句?

我正在尝试在PHP中创建一个SQL查询来更新表.是否可以WHERE为每个受影响的行设置不同的子句?

例如:

UPDATE table 
SET val=X WHERE someproperty = 1,
SET val=Y WHERE someproperty = 2
Run Code Online (Sandbox Code Playgroud)

等等?

任何帮助赞赏.谢谢

sql sql-update

6
推荐指数
2
解决办法
3万
查看次数

循环分配

我有一个客户表,并希望以循环方式为每个客户分配销售人员.

Customers  
--CustomerID  
--FName  
--SalespersonID

Salesperson  
--SalespersonID  
--FName  
Run Code Online (Sandbox Code Playgroud)

所以,如果我有15个客户和5个销售人员,我希望最终结果看起来像这样:

CustomerID -- FName -- SalespersonID  
1 -- A -- 1  
2 -- B -- 2  
3 -- C -- 3  
4 -- D -- 4  
5 -- E -- 5  
6 -- F -- 1  
7 -- G -- 2  
8 -- H -- 3  
9 -- I -- 4  
10 -- J -- 5  
11 -- K -- 1  
12 -- L -- 2  
13 -- M -- 3  
14 …
Run Code Online (Sandbox Code Playgroud)

sql round-robin sql-update

6
推荐指数
1
解决办法
6610
查看次数

MySQL在文本列中更改文件扩展名

MySQL-pro的一个简单问题.我有一个表中包含文件名的字段(只是文件名,没有额外的文本).我需要将所有文件扩展名从".png"更改为".jpg",我知道有一种方法可以使用PHP或Java等编程语言进行查询和编写脚本.

为了以防万一,删除"show create table"输出:

CREATE TABLE `photos` (
  `id` bigint(20) NOT NULL,
  `owner_id` int(11) DEFAULT NULL,
  `photo_name` varchar(255) DEFAULT NULL,
  `comment` text,
  `normal_file_name` varchar(255) DEFAULT NULL,
  `thumb_file_name` varchar(255) DEFAULT NULL,
  `full_file_name` varchar(255) DEFAULT NULL,
  `photo_order` int(11) DEFAULT NULL,
  `gallery_file_name` varchar(255) DEFAULT NULL,
  `photo_type` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `FK_photos_OWNER_ID` (`owner_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 |
Run Code Online (Sandbox Code Playgroud)

normal_file_name,thumb_file_name,gallery_file_name和full_file_name是包含文件路径的字段.

提前感谢您的帮助!

// Juriy

mysql sql sql-update

6
推荐指数
1
解决办法
5638
查看次数

如何使用"空白"值更新列

如何varchar(20), not null使用"空白"值更新列值()?

sql sql-update

6
推荐指数
2
解决办法
5万
查看次数

在SQL中更新记录但不覆盖....在开头添加文本

请问如何更新表格哪里有文字?

示例:我有文字"打招呼",我想让这个"彼得说你好" - 我想补充一下彼得的话......

了解?

非常感谢.

mysql sql sql-update

6
推荐指数
2
解决办法
1万
查看次数

SQL批量重新排序行

我有一个包含记录列表的表,以及一个名为order的列.我有一个AJAX脚本来向上或向下拖放表格行,我想用它来执行查询,在拖动行时对行进行重新排序.

在PHP中,我执行查询以获取记录的当前顺序.例如1,2,3,4 AJAX函数在拖放完成后传递新顺序,例如3,1,2,4

是否有一种简单的方法可以根据新值一次性重新排序记录?我能看到的唯一其他选择是循环遍历UPDATE语句,例如SET order = 1,其中order = 3

但肯定会导致2条记录具有相同的值?

道歉,我知道这种描述可能会有些混乱.

sql ajax sql-update

5
推荐指数
2
解决办法
2082
查看次数

在Oracle中使用两个表更新SQL

我有这样的SQL

UPDATE A
SET A.TEMSILCI_KOD = 4
FROM S_MUSTERI A, S_TEKLIF B
WHERE A.TEMSILCI_KOD = 9
AND B.BAYI_KOD = 17
AND A.HESAP_NO = B.HESAP_NO
Run Code Online (Sandbox Code Playgroud)

但我得到这样的错误

Error starting at line 8 in command:
UPDATE A
SET A.TEMSILCI_KOD = 4
FROM S_MUSTERI A, S_TEKLIF B
WHERE A.TEMSILCI_KOD = 9
AND B.BAYI_KOD = 17
AND A.HESAP_NO = B.HESAP_NO
Error at Command Line:9 Column:22
Error report:
SQL Error: ORA-00933: SQL command not properly ended
00933. 00000 -  "SQL command not properly ended"
*Cause:    
*Action: …
Run Code Online (Sandbox Code Playgroud)

sql oracle ora-00933 sql-update

5
推荐指数
1
解决办法
3万
查看次数

标签 统计

sql ×10

sql-update ×10

oracle ×3

mysql ×2

ajax ×1

bulk ×1

ora-00933 ×1

round-robin ×1

sql-server ×1