标签: sql-update

如何在 MySQL 中设置计数器列值?

我有一个带有“SortID”列的表,该列使用连续数字进行编号。每当删除一行时,就会留下一个空白。有没有办法使用纯 SQL 用行号更新行?像这样的东西:

UPDATE tbl SET SortID={rowindex} ORDER BY SortID
Run Code Online (Sandbox Code Playgroud)

(我意识到这不是有效的 SQL,这就是我寻求帮助的原因)

这应该将第一行设置为#1,第二行设置为#2...等等。这可以使用 SQL 吗?请原谅措辞不佳的问题,我不确定问这个问题的最佳方式。:)

mysql sql sql-update

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

T-SQL -- 为什么 ALTER 和 UPDATE 语句只在分离到它们自己的批处理中时才运行?

我有 update 和 alter 语句,它们仅在将它们放入自己的批处理中时才运行。下面是我的精简版。

DROP TABLE #tmpImportData
USE database_name
GO

DECLARE @localVar VARCHAR(MAX) = 'data'
DECLARE @localVar VARCHAR(MAX) = 'data'
DECLARE @localVar VARCHAR(MAX) = 'data'
DECLARE @localVar int = 1
--Etc...

DECLARE @localVar INT
DECLARE @localVarVARCHAR(50)    
DECLARE @localVar AS BINARY (16)    
---Etc...


CREATE TABLE #tmpImportData (GuideFirstName VARCHAR(MAX), GuideLastName VARCHAR(MAX), 
                             email VARCHAR(MAX), group_id_text VARCHAR(MAX), CandidateName VARCHAR(MAX), 
                             grade_text VARCHAR(5), dateofbirth DATETIME

                             )

SET @sql = 'BULK INSERT #tmpImportData FROM '''+@fileName+''' WITH (FIELDTERMINATOR ='';'', ROWTERMINATOR = ''\n'', FIRSTROW = 1)'
EXEC (@sql) …
Run Code Online (Sandbox Code Playgroud)

t-sql database sql-server alter-table sql-update

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

SQL 更新查询中的意外执行

我在 SQL Server 2012 中通过更新查询得到“意外”结果。这就是我想要做的。

从由ID ','name(例如258967,Sarah Jones )组成的列(IDENTIFIER)中,我必须填写其他两列:IDSELLER_NAME

原始列有一些值,末尾有一个空白,其余的没有它:

'258967,Sarah Jones'
'98745,Richard James '
Run Code Online (Sandbox Code Playgroud)

这是我正在执行的更新查询:

UPDATE SELLER
SET 
IDENTIFIER = LTRIM(RTRIM(IDENTIFIER)),
ID = Left(IDENTIFIER , charindex(',', IDENTIFIER )-1),
SELLER_NAME = UPPER(RIGHT((IDENTIFIER ),LEN(IDENTIFIER )-CHARINDEX(',',IDENTIFIER )));
Run Code Online (Sandbox Code Playgroud)

但我最后得到了错误的结果

258967,Sarah Jones    258967  SARAH JONES
98745,Richard James    98745   ICHARD JAMES
Run Code Online (Sandbox Code Playgroud)

所有末尾有空格的名称都会发生同样的情况。此时我想知道,如果我已经指定我要在第一个操作中消除 IDENTIFIER 值开头和结尾的所有空格,为什么系统会更新 ID 和 SELLER_NAMES 然后执行此操作?。

只是要指定: IDENTIFIER 列是卖方表的一部分,该表正在从另一个人那里更新,该人从 Excel 文件中导入数据。我收到这个值,我必须规范化信息。我只能阅读 SELLER 表,在回答之前考虑到这一点

sql sql-server updates sql-update sql-server-2012

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

更新一个字段时自动更改 Django 模型字段并冻结另一个字段的一次性只写?

onupdateDjango 的模型字段有参数吗?

例如,在带有 SQLAlchemy 的 Flask 中,可以使用onupdate=...数据库模式的参数执行以下操作db.Column()

import datetime

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    created_on = db.Column(db.Text, default=datetime.datetime.utcnow().isoformat())
    updated_on = db.Column(db.Text, default=datetime.datetime.utcnow().isoformat(), 
                           onupdate=datetime.datetime.utcnow().isoformat())
Run Code Online (Sandbox Code Playgroud)

文档中,有一个auto_now参数,与onupdate=...SQLAlchemy 中的参数相同db.Column()

我已经尝试使用以下模型对象来模拟上面的 Flask 代码,但是如何onupdate=...在 Django 中获得相同的“效果”?

from django.db import models
from django.utils.timezone import now

class User(models.Model):
    id = models.IntegerField()
    created_on = models.DateTimeField(default=now)
    updated_on = …
Run Code Online (Sandbox Code Playgroud)

python django schema flask sql-update

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

访问:带有来自另一个表的值的 UPDATE 列

我正在尝试使用 table2 中的 column2 中的值更新 table1 中的 column1 和 table2 中的条件。这很令人困惑,所以这是我的 SQL 代码,也许你明白我的意思......

Private Sub Button_Click()
Dim strSQL As String
strSQL = "UPDATE table1 SET column1 = table2.column2 WHERE table2.ID = 1"
CurrentDb.Execute strSQL
End Sub
Run Code Online (Sandbox Code Playgroud)

此代码未按预期工作,因此我需要您的帮助...

提前致谢!

sql ms-access sql-update

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

Mysql UPDATE IF FIELD IS EMPTY SET VALUE ELSE CONCAT VALUE

我的查询中有语法错误:

UPDATE users SET name=IF(name='', 'mario', CONCAT(name, ',mario') WHERE id=1
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我吗?

mysql concat sql-update

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

更新加入 -> 插入 NULL

这个问题很简单,但是我通过搜索“UPDATE JOIN INSERT”和其他类似的东西没有找到答案。

我需要对两个表('main' 和 'sub')进行更新,而一个数据集可能不存在。那么应该有一个简单的 INSERT 之前执行...在一个语句中。

“主要”始终存在。
“子”没有。

我梦幻般的 SQL 解决方案是这样的:

UPDATE main LEFT JOIN sub on main.primary=sub.primary
SET main.foo='bar', sub.foo2='bar2'
CASE sub.primary IS NULL {INSERT INTO sub SET sub.primary=main.primary};
Run Code Online (Sandbox Code Playgroud)

'CASE'-part 是自由泳的,大概是行不通的。但正确的做法是什么?

它绝对必须是“UPDATE [...] LEFT JOIN [...] SET a=aVal, b=bVal, [...]” - 语句。 它必须可扩展至最多 5 个 LEFT JOIN 表,并且无需“SET(..) VALUES(..)”

有没有可能的解决方案?

mysql sql left-join sql-update

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

SQL Server:如何使用另一个表中的值更新表

我有两张桌子。用户 1:

UserID HolidayCity ValidFrom    ValidTo
1      NULL        '1900-01-01' '2017-05-09'
1      NULL        '2017-05-09' NULL
2      NULL        '1900-01-01' '2017-05-09'
2      NULL        '2017-05-09' NULL
Run Code Online (Sandbox Code Playgroud)

用户2:

UserID CityID
1      33
2      55
Run Code Online (Sandbox Code Playgroud)

我需要使用每个 UserID 的第二个表中 CityID 列中的值更新第一个表中的 HolidayCity 列,但只有那些ValidTo 为 NULL 的记录,以便结果表 Users1 将是:

UserID HolidayCity ValidFrom    ValidTo
1      NULL        '1900-01-01' '2017-05-09'
1      33          '2017-05-09' NULL
2      NULL        '1900-01-01' '2017-05-09'
2      55          '2017-05-09' NULL
Run Code Online (Sandbox Code Playgroud)

你能告诉我怎么做吗?

sql-server sql-update

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

如何撤消 SQL Server 的更新功能?

我在列上使用了更新语句,现在我想反转它。有没有办法撤销这个?

这是原始数据

Name    Score
John    15
John    15
Run Code Online (Sandbox Code Playgroud)

我使用了这个查询:

UPDATE T1
SET [score] = [score]+'na'
WHERE (name = ‘john’) 
Run Code Online (Sandbox Code Playgroud)

这给了我这个:

Name    Score
John    15na
John    15na
Run Code Online (Sandbox Code Playgroud)

我可以撤消此操作并删除na吗?我希望分数是浮动的。

sql sql-server sql-update

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

如果一行存在于另一个表中,如何更新 (SQL)

itemTable如果iid相关表上存在匹配的行,我正在尝试更新 a 上的列。

itemMeta是一个 NoSQL 风格的表,表上iid每一项都有重复的s,itemTable是一个关系表。

update itemTable it
set hasAttributes = (select
  case when select count(1) from itemMeta where (im.iid = it.iid) 
  then 'Y' 
  else 'N' end)
from itemMeta im
where (im.iid = it.iid)
Run Code Online (Sandbox Code Playgroud)

如何将列设置为YitemTable,如果有匹配的行iid上存在itemMeta

sql sql-server case exists sql-update

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