我正在寻找一个UPDATE语句,它只更新一个重复的行并保持其余(重复的行)原样,使用ROWID或其他东西或其他元素在Oracle SQL或PL/SQL中使用?
这是一个使用的示例duptest表:
CREATE TABLE duptest (ID VARCHAR2(5), NONID VARCHAR2(5));
Run Code Online (Sandbox Code Playgroud)
跑一个 INSERT INTO duptest VALUES('1','a');
跑了四(4)次 INSERT INTO duptest VALUES('2','b');
此外,必须始终更新(不删除)第一个重复行,而其他三个(3)必须保持原样!
非常感谢,Val.
我的一位客户在我们的一个应用程序中添加了许多帐号.在尝试进行交易时,由于帐号末尾的空格,交易失败.我如何更新他在Mysql数据库中的记录,以删除最后拥有它们的帐户中的所有空格,而不是让他删除客户端并重新添加帐户?表格的结构如下:
不知道如何构造查询或mysql的功能
帐户表:
the account table:
CUSTOMER_ID
ACCOUNTNUMBER
TXT
CURRENCY_NO
USER_ID
ACTIVE_FLAG
USER_DATE
ben_bic_address
int_bic_address
the admin table
ADM_USER_ID
LOCATION_CD
LANG
USER_NAME
USER_LOGIN
USER_PASSWORD
GROUP_CODE
USER_ID
USER_DATE
ACTIVE
COUNTER
connected
IP
And the customer table:
CUSTOMER_ID
COUNTRY_NO
USER_ID
CUSTOMER_NAME
ACTIVE_FLAG
Run Code Online (Sandbox Code Playgroud) 我正试图绕过一个查询而我无法理解它.如果有人给我指针,我将不胜感激.作为我想要实现的一个简单示例,我在数据库中有这些记录
Score|Ranking
-------------
100 |0
200 |0
300 |0
Run Code Online (Sandbox Code Playgroud)
我希望排名字段包含1,2,3根据谁获得最高分,所以结果应该是:
Score|Ranking
-------------
100 |3
200 |2
300 |1
Run Code Online (Sandbox Code Playgroud)
目前,我正在为所有这些记录做下一个循环,但实际上这可能是几千 - 这可能需要永远!有没有人对魔术查询有一个想法,可以一次性做到这一点?
我有一个使用CASE子句的MySQL UPDATE语句
UPDATE partsList SET quantity =
CASE
WHEN partFK = 1 THEN 4
WHEN partFK = 2 THEN 8
END
WHERE buildFK = 1;
Run Code Online (Sandbox Code Playgroud)
以上陈述有效.然而,当我删除其中一个WHEN语句时,它会中断并且错误表明CASE子句没有返回任何内容.是CASE子句必须有多个WHEN才能运行.
我事先不知道我需要多少更新,所以我正在尝试构建一个可以处理一个或多个更新的更新语句.
感谢您提供的任何见解.
我处于这样一种情况,即我必须在我的数据库中更新大约12,000个项目.每行都需要镜像我之前创建的excel文件.我创建了创建每行SQL语句的文件,但我不确定是否可以在单个查询中运行每一行.
这是我想要做的一个例子.
UPDATE [STORESQL].[dbo].[RPT_ITM_D] SET F1301='1.29' WHERE F01='0000000000001'
UPDATE [STORESQL].[dbo].[RPT_ITM_D] SET F1301='1.39' WHERE F01='0000000000002'
Run Code Online (Sandbox Code Playgroud)
这会起作用,还是有更好的选择来实现我想要实现的目标?
每个项目都有一个唯一值,要更改的列也将具有唯一值.我不知道如何用循环或我到目前为止找到的任何其他方法来完成这项工作.我意识到这可能需要很长时间才能完成,但时间不是问题.
先感谢您
我有一个名为产品的表,其中包含一个名为price的字段,我只想将每个产品的价格加倍.你能不能给我一个SQL语句,我可以在PHP myAdmin中运行.
当我运行该代码时,我在db.insert中有一个异常:
08-29 15:40:17.519: E/SQLiteDatabase(3599): android.database.sqlite.SQLiteConstraintException: column date is not unique (code 19)
Run Code Online (Sandbox Code Playgroud)
这是正常的,因为我已经把这个价值作为关键.所以在这种情况下我会抓住SQLiteConstraintException但是当我运行代码时我从未进入捕获.
我究竟做错了什么?
try {
db.insert(TABLE_STATISTICS, null, values);
} catch (SQLiteConstraintException e) {
Log.d("entered", "entered the exception");
ContentValues valuesUp = new ContentValues();
valuesUp.put((isMT ? KEY_MT : KEY_MO), change);
db.update(TABLE_STATISTICS, valuesUp, KEY_DATE + "=?",
new String[] { message_date });
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
整个日志:
08-29 15:55:55.870: E/SQLiteDatabase(3828): Error inserting MO=0 date=2012-08-08 MT=1
08-29 15:55:55.870: E/SQLiteDatabase(3828): android.database.sqlite.SQLiteConstraintException: column date is not unique (code 19)
08-29 15:55:55.870: E/SQLiteDatabase(3828): at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method)
08-29 …Run Code Online (Sandbox Code Playgroud) 我有两张桌子.
表1包含公司,其位置在名为的列中使用lat/lng坐标进行地理配准the_geom
表2还包含来自Table1的相同公司,而不是地理参考,以及其他数百个地址为地理参考的公司.
我需要做的就是将Table1公司的the_geomlat/lng值插入表2中的相应条目.这些插入可以基于的共同点是列.address
简单的问题,我确定,但我很少使用SQL.
是否有可能升级bool字段,告诉它将字段更新为与其相反的字段而不必选择值 - 检查它然后相应地更新,这看起来很长...
我的意思的一个伪示例
UPDATE `table` SET `my_bool` = opposite_of(my_bool)
Run Code Online (Sandbox Code Playgroud)
目前我必须在一个查询中选择my_bool,然后快速检查其值,以便我可以在第二个查询中更新表.
如果有可能的话,我希望将其减少到一个查询?
我一直在尝试使用PyMysql,到目前为止我所做的一切(选择/插入),但是当我尝试更新它只是不起作用,没有错误没有什么,只是没有做任何事情.
import pymysql
connection = pymysql.connect(...)
cursor = connection.cursor()
cursor.execute("UPDATE Users SET IsConnected='1' WHERE Username='test'")
cursor.close()
connection.close()
Run Code Online (Sandbox Code Playgroud)
是的我已经仔细检查过Users,IsConnected和Username都是正确的并且测试确实存在(SELECT适用于它)
这是我的问题?