我有大约 500 条记录的 mysql 表,以及一些我如何根据我的要求修改我的表的信息。不过,我有一张表,其中包含 (sale_id,cust_id,Sales_desc bla bla) 等字段
我已经为所有 500 行制作了具有一个值('1')的 sale_id 行,,,,,,但是我想从你们那里知道什么,谁能告诉我如何将 sale_id 更新为 1 到 500,,,,,i意思是说我希望这一行应该从 1 到 N 开始,,,,,但是这个表中已经有一些数据了,,,,,我只是想用序列号替换现有的 sale_id 值(1,2,3, 4,5....n) 请帮我解决这个问题...我正在等待...
沙希德 emsoftware.in
我有一个表,其中需要有一个递增的 _id 列。但是,由于表有 3 个主键,我无法使用自动增量。顺便说一句,这是在 SQLite 中。该表已经填充了数据,因此我不能重新创建该表。
有没有办法在 _id 列中插入 1 到 148 之间的值?
我们已经尝试过这样的事情:
UPDATE table1
SET _id = (SELECT _id FROM table2)
Run Code Online (Sandbox Code Playgroud)
table2 是一个临时表,其中包含从 1 到 148 的值。但这只是将所有 _id 值更新为“1”。
关于如何解决这个问题有什么建议吗?
我有桌子tbl_dtcount。在该表中有一列用于日期。
现在我需要为该日期字段中的每一行减少一天。日期从2012-05-19到开始2012-07-03。执行此操作的 MySQL 更新语句是什么?
我有一个可以在 SQL Developer 中运行的小型更新查询。
UPDATE people
SET months = 8
WHERE number = 599
Run Code Online (Sandbox Code Playgroud)
非常坦率的。它有效 - 这在 C# 中也有效。问题是当我想使用参数(适用于数字但不适用于月份)时,它将停止工作。
我在 C# 中有这样的代码:
using (OracleConnection con = new OracleConnection(connectionString))
{
con.Open();
OracleCommand command = con.CreateCommand();
command.CommandType = CommandType.Text;
command.CommandText = "UPDATE people " +
"SET months = :months " +
"WHERE number = :number";
command.Parameters.Add(":number", OracleDbType.Int32).Value = number;
command.Parameters.Add(":months", OracleDbType.Int32).Value = months;
command.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)
它们都是oracle中的Number类型,我尝试将OracleDbType更改为Decimal,但几乎一切都没有成功。奇怪的是, :number 参数有效,但几个月没有更新(它不会崩溃,只是不更新)。但是,如果我将 :months 参数更改为 7 这样的静态值 - 它将起作用。
我有以下返回数据的 SELECT 语句,示例如下:
SELECT performers.ID,
performers.Name,
COUNT(*) AS CountOfDeals,
COUNT(DISTINCT(deals.Name)) AS CountOfAliases
FROM deals RIGHT JOIN performers
ON deals.name LIKE CONCAT('%', performers.name, '%')
WHERE performers.ID IN ( 27952, 27951, 27950, 27949, 27948 )
GROUP BY Name;
Run Code Online (Sandbox Code Playgroud)
返回的数据示例:
ID Name CountOfDeals CountOfAliases
27952 Christine Hoberg 1 0
27951 Indian Jewelry 1 0
27952 Kinky Friedman 5 3
27949 KJ-52 1 0
27960 River Whyless 1 0
Run Code Online (Sandbox Code Playgroud)
我想将其与以下 UPDATE 语句结合起来
UPDATE performers
SET RawAliasCount = CountOfAliases,
RawDealCount = CountOfDeals
WHERE ID = …Run Code Online (Sandbox Code Playgroud) 我有一个名为 的表log,其中有数百万行。目前,它看起来像这样:
Id OriginId MetricId Value IsDuplicate DuplicateId
-------- -------- --------- ------ ----------- -----------
1 50ECC7F6 FC7A477F 2.00 0 0
3 50ECC7F6 FC7A477F 2.00 0 0
4 8800B985 7F438F09 5.00 0 0
5 50ECC7F6 FC7A477F 2.00 0 0
Run Code Online (Sandbox Code Playgroud)
我现在需要找到OriginId和MetricId相等的重复项,将除第一个匹配项之外的所有匹配项设置IsDuplicate为 1,并DuplicateId设置为Id第一个出现的行的 。
预期的结果是这样的:
Id OriginId MetricId Value IsDuplicate DuplicateId
-------- -------- --------- ------ ----------- -----------
1 50ECC7F6 FC7A477F 2.00 0 0
3 50ECC7F6 FC7A477F 0.00 1 1
4 8800B985 …Run Code Online (Sandbox Code Playgroud) 我正在尝试更新包含两列的表;id和position。id是唯一的并且自动递增。position是唯一的,但不会自动递增,实际上必须手动设置。
我需要更改位置大于或等于5(或我提供的任何其他数字)的所有行,以将它们全部加一。这是我的代码:
UPDATE slides
SET position = position + 1
WHERE position >= 5;
Run Code Online (Sandbox Code Playgroud)
不幸的是,它返回以下错误:
错误:键“slides_position_unique”的条目“2”重复
如何更新所有这些唯一编号而不引起冲突?我尝试过一个子查询来查找所有可更新的行并反向返回它们,但它没有帮助。
CREATE TABLE slides
(id int(10) unsigned NOT NULL AUTO_INCREMENT,
user_id int(10) unsigned NOT NULL,
position int(10) unsigned NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY slides_position_unique (position),
KEY slides_user_id_foreign (user_id),
CONSTRAINT slides_user_id_foreign
FOREIGN KEY (user_id) REFERENCES users (id) )
Run Code Online (Sandbox Code Playgroud) 你能给我建议吗?如何制作允许您插入和更新项目的工作表单?我有一种可用于插入的表单,但是当我想以<input>这种形式更新时,它会返回错误,其中包含表单中的所有数据。所以我想请你帮忙更新。
我的代码:
第 1 页 插入零件 (此有效)
<cfif isdefined("Form.Name")>
<cfquery name"something" datasource="#something#>
INSERT INTO table..
Values (...)
</cfquery>
</cfif>
Run Code Online (Sandbox Code Playgroud)
更新部分
<cfif isDefined('url.action')>
<cfquery datasource="Something" name="Something">
Update table..
SET Name= <cfqueryparam cfsqltype="cf_sql_varchar" value="#Form.Name#">
Where Some_id = '#Form.ID#'
</cfquery>
</cfif>
Run Code Online (Sandbox Code Playgroud)
第1页 表格
<table>
<form action="path\Page1.cfm?action=update" method="post">
<cfloop query="languageField">
<input name="Name" value="#SomeQuery.Name#">
<input type="Submit" value="Submit">
</cfloop>
</form>
</table>
Run Code Online (Sandbox Code Playgroud) 我projects在 postgreSQL 中有一个表,如下所示
id. project_name. col3. col4
1111. test. ... ...
Run Code Online (Sandbox Code Playgroud)
id仅当id不存在时,我才想为新插入一个新行。所以我写了下面的查询
INSERT INTO projects(id, project_name)
VALUES("1234", "Test_Project")
ON CONFLICT (id)
DO NOTHING
Run Code Online (Sandbox Code Playgroud)
但它给我一个错误
Query 1 ERROR: ERROR: column "1234" does not exist
LINE 2: VALUES("1234", "Test_Project_...
Run Code Online (Sandbox Code Playgroud)
请建议。
** 编辑**
id表中的列是一个 uuid 并且不是唯一的。可以有多个具有相同 ID 的行。根据 GMB 的建议,我尝试了以下
INSERT INTO projects(id, project_name)
VALUES('1234', 'Test_Project')
ON CONFLICT (create unique index on projects(id))
DO NOTHING
Run Code Online (Sandbox Code Playgroud)
我得到以下错误
Query 1 ERROR: ERROR: syntax error at or near "create"
LINE …Run Code Online (Sandbox Code Playgroud) 我不是 SQL 开发人员。我在下面有这段代码,我的 DBA 希望我进一步简化。希望你们可以看看并帮助如何进一步简化这个查询。这里可以不使用 CTE 吗?谢谢。
;
WITH CTE_tmp1(RecId, Newdata, Changecode) AS
(
SELECT RecId, Newdata, Changecode
FROM dbo.POLL
WHERE Changecode = 1
)
UPDATE dbo.POLL
SET RecId = T.Newdata
FROM dbo.POLL P
INNER JOIN CTE_tmp1 T
ON P.RecId = T.RecId
WHERE P.Changecode IS NOT NULL AND P.Changecode <> 1
Run Code Online (Sandbox Code Playgroud)
`
sql-update ×10
sql ×5
mysql ×4
sql-server ×2
t-sql ×2
c# ×1
coldfusion ×1
date ×1
forms ×1
odp.net ×1
oracle ×1
postgresql ×1
select ×1
sql-insert ×1
sqlite ×1
string ×1