sqlite中SQL语句的表达式不能包含字段值吗?

例如:“update 表名 set 整型字段1=64,整型字段2=整型字段1+32 where 字段1=64;" 结果不对啊?难道表达式中只能是常数,不能有字段值吗?

0

2个回答

不可以,只能写
update 表名 set 整型字段1=64,整型字段2=64+32 where 字段1=64
如果非要按照你的写法,可以写
update 表名 set 整型字段1=64,整型字段2=(select 整型字段1 from 表 where 字段1=64)+32 where 字段1=64

1
diagram98
diagram98 如果要对字段值进行算术加减及逻辑与或运算该如何实现?
接近 4 年之前 回复
diagram98
diagram98 “update 表名 set 整型字段1=64,整型字段2=整型字段1 where 字段1=64”也不能实现。是否“=”后就只能跟常数?
接近 4 年之前 回复
diagram98
diagram98 感谢你的回复!但用你说的方法试了很久也没能实现。
接近 4 年之前 回复

“update 表名 set 整型字段1=64,整型字段2=(select 整型字段1 from 表 where 字段1=64)+32 where 字段1=64“ 好像也不行啊!
我是把这个语句放到触发器中执行的,应该与在SQLITE命令行执行结果相同吧?实际上这些字段值都是变量,所以需要表达式。如果是常量就不必要运算符了。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
sqlite timestamp 时间字段查询语句的写法
在sqlite里对timestamp字段进行where语句查询时,请首先确定存储的时间格式是否是ISO 8601标准的时间字符串,也就是2011-04-10T15:45:58,或者是* 2011-04-10T 14:25:10.487如果你的timestamp字段写入的是2011-04-11 15:45:58,可以肯定告诉你,你再怎么按时间查询都是有很大问题,明明表里有就是查不出来,所以写入新纪录
SQL系列(一)SELECT与表达式的日常使用
-------------------------------------------------------------新手适用。 一、SELECT的简单使用 1.查表所有数据:    select * from 表名 2.查表中特定列数据: select 列名1,列名2,列名3.。。 from 表名 3.查表中不重复数据: select DISTINCT 列名 from 表名
sql之with as 公用表表达式
sql 中的with as 具有强大的功能,特别是在有递归需要的情况下,一般来说结合union all一起用。 示例如下: with w_Users(UserId) as ( select UserId from Users where UserId={0}
sql 语句直接替换或删除数据库中某字段中的特定字符
用sql语句直接替换或删除数据库中某字段中的特定字符 有时候不需要出库,在数据库中修改一些内容,就需要用到下列语句! sql语句为:UPDATE `table_name` SET `field_name` = replace (`field_name`,’from_str’,'to_str’) WHERE …… 代码说明: table_name —— 表的名字 fie
SQLite not in 无法查询数据
  SELECT * FROM QuestionInfo WHERE ID != (select QuestionID from Exam) SELECT * FROM QuestionInfo WHERE  ID not in  (select QuestionID from Exam) != 有数据 not in 没有数据 但各类文档都说 2者是等价...
关于SQL中的字段“包含”与“包含于”字符串的写法
1、查询表中某字段值“包含”某字符串的所有记录的方法 假如表中有一个name字段,查询name包含“张三”的所有记录,可以这样写sql: Stirng strsql="SELECT * FROM 表名 WHERE name LIKE ’%"+"张三"+"%’";  2、查询某字段值“包含于”某个字符串的所有记录的方法 如果查询表中name字段包含于字符串“张三是个好学生”的所有记录
SQL从入门到出门 第10篇 CASE:SQL中的条件表达式
本篇介绍SQL:2016(ISO/IEC 9075:2016)标准中定义的`CASE`表达式,以及六种主流数据库中的实现及差异:Oracle、MySQL、Microsoft SQL Server、PostgreSQL、Db2、SQLite。
sqlite 一条记录判断一个字段是否like另一个字段
      sql: select * from test where col2 like '%'||col1||'%';
查询重复或不重复记录SQL语句
1.如何用SQL语句把一个表里面某字段内有相同的记录查询出来 现在有一个表 有三列 分别是tel,name,addr 我现在要查询name一样的  具体T-SQL语句要怎么写 求助 就是name这个列有很多记录在数据库里面 这些人有很多哈 就是如何把这些同名同姓的记录找出来 只显示name select name from tb group by name having count
sqlite库——c语言实现匹配已知字符串中某个字段(该字段在其他表中),在其他表中获取值并显示
问题描述: 1、部分sql语句:select id,name,grouname, poliname; 2、表名:user_resource;用户组表名:usergroup_name; 3、用户所在的用户组名usergroup_name ; 即,需要根据以上条件拼接sql语句: select id,name,grouname,(select poliname from user_group...
SQL语句遇到字段值中包含单引号的解决办法
很简单,如果值中包含单引号,则将该单引号以两个单引号代替即可。即sql.replaceAll("'", "''");
SQL高级语句-NOT NULL 约束,强制字段始终包含值。
SQL NOT NULL 约束 NOT NULL 约束强制列不接受 NULL 值。 NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。 下面的 SQL 语句强制 "Id_P" 列和 "LastName" 列不接受 NULL 值: CREATE TABLE Persons ( Id_P int NOT NULL, LastNam
ACCESS 数据库不支持正则表达式,如何用SQL语句查询表中既去重复的有只查是数字或字母的字段!
举例: 笔者编程时发现以前编的程序在SQL Server数据库中能正确查出要查的数据结果,当数据库变成ACCESS时查不出数据了,上网发现是ACCESS数据库不支持正则表达式,只能用模糊查询查出想要的数据。 同一条SQL语句在不同数据库里执行情况: SQL Server :string sql = "select distinct CM_AJBH  from T_Case_Mag where ...
(SQL语句)日期格式的字段怎么模糊查询
测试的表结构数据如下 其中“OrderDate”,“RequiredDate”和“ShippedDate”三个字段的格式是datetime格式 这种格式下,直接用like进行日期的模糊查询是没有结果的 我们可以使用convert()来转换datetime成varchar SELECT * FROM Orders WHERE CONVERT(varchar,OrderDate,21)...
sql取得不包含某数据的字段。。。not in
SELECT g.GroupId as '群组编号', g.GroupName as '群组名称' from groupmain as g WHERE g.GroupID NOT IN (SELECT p.GroupID from phonebook as p WHERE p.GroupID is not NULL)
关于sqlite3的C接口中的sql语句的查找关键字需要带上引号的问题
有的时候,在
Sqlite中sql高级用法整理
一、主键 PRIMARY KEY 约束唯一标识数据库表中的每个记录。 在一个表中可以有多个 UNIQUE 列,但只能有一个主键。 在设计数据库表时,主键是很重要的。主键是唯一的 ID。 我们使用主键来引用表中的行。 可通过把主键设置为其他表的外键,来创建表之间的关系。 由于”长期存在编码监督”,在 SQLite 中 主键值 可 以是 NULLL,这是与其他数据库不同的地方。N
用SQL语句查询数据库中某一字段下相同值的记录方法
今天接到一任务,有一张学生信息表(Excel表),里面有一万多条记录,现在要把这张表导入到数据库中,并设置学生学号为主键,但是现在这张表中的学生学号有重复的记录,我必须先找出这些重复的记录,然后再进行筛选,经过研究问题终于得到解决。       以上问题实际上就是查询数据库表中某一字段值重复的记录,这里省略如何将Excel表导入到数据库步骤,只讨论用SQL查询数据库中某一字段下相同值的记录方法。
case when then 判断某字段是否为null
case when then 判断某字段是否为null? CASE columnName WHEN null THEN 0 ELSE columnName END 虽然columnName 为空,但结果不为0,结果应该为0才对 解决方法:http://yayihouse.com/yayishuwu/chapter/1108
sql语句中要查询一个字符串字段不为空怎么写
select *from 表名 where (shareUser is not null) or shareUser
【Transact-SQL】找出不包含字母、不包含汉字的数据
测试的同事,让我帮忙写个sql语句,找出表中xx列不包含汉字的行。   下面的代码就能实现。   IF EXISTS(SELECT * FROM sys.tables WHERE name = 't') DROP TABLE t go CREATE TABLE t(str VARCHAR(100)) INSERT INTO t VALUES('abc'),('ABZ
insert 语句,包含特殊字符的处理
& 替换成'||chr(38)||',  引号 ' 替换成 两个引号''
在sql语句中实现类似三元判断的功能
 业务场景:判断字段是否为空,为空赋值当前时间 case when MO.STOP_TIME is NULL then sysDate else MO.STOP_TIME end) >= TO_DATE ('2017-07-12', 'yyyy-mm-dd hh24:mi:ss' SELECT MO.VISIT_SN, ROW_NUMBER () OVER (ORDER B...
使用SQL语句获取SQLite中的表定义
1. 问题提出有人问,在sqlite中怎么用sql语句得到一个表的列定义语句。第一反应,可能就是用.schema 可是这是sqlite的shell命令行。使用代码,好像得不到结果。幸好,sqlite它有比较特殊的系统表:sqlite_mastersqlite_temp_master这两张系统表的表结构完全相同,如下所示:sqlite> .schema sqlite_master CREATE TA
SQLite-Python中如何返回、查询中文字段
博主在这个问题上卡了挺久的,贴出来解决方法帮助需要的朋友,直接上代码(测试环境:win10+Python2.7):# coding=utf-8 import sqlite3 with sqlite3.connect(":memory:") as conn: try: init_sql = " create table test (id integer primary k...
SQlite在已创建的表中删除一列
sqlite中是不支持删除列操作的,所以网上alter table table_name drop column col_name这个语句在sqlite中是无效的,而替代的方法可以如下: 1.根据原表创建一张新表 2.删除原表 3.将新表重名为旧表的名称 示例例子如下 1.创建一张旧表Student,包含id(主码),name, tel create table student (
查询出某字段值不为空的记录的SQL语句怎么写
select * from 表名 where 字段名 is not null
Sqlite 建表不能使用的关键字
最近用Android SQLite建表时,使用了下面的一条建表语句 ,在编译的时候程序就提示”near GROUP syntax error“,检查了没有任何的语法错误,实在是找不到错误原因,后来就尝试更换表的表名,当我把"GROUP"换成其它的表名的时候就不会有任何问题。这下问题就直接定位到了表名上,我猜测"GROUP"这个名字可能和Sqlite定义的关键字冲突了,上Sqlite官网一查果然是S
SQL语句查询字段中是否包含汉字
一:查询字段首位是否为汉字? SELECT * FROM 表名WHERE ascii(字段)>127 二:查询字段是否包含汉字(任意位)? select   *   from   表名 where    字段   like   '%[吖-座]%' --这个可以判断是否包含汉字而不是其它双字节字符 ----[吖-座]是中文字符集第一个到最后一个的范围,虽然匹配准确,但是
SQLite数据库表字段修改与删除
我创建一张表,但是在使用过程中发现字段名称会发生改变,但是SQLite数据库只允许增加表字段(alter table my_table add field_name field_type;),不允许修改和删除表字段。这时候只能使用复制表思想了。步骤如下: 1、将需要修改的表(my_table)重新命名(ALTER TABLE "my_table" RENAME TO sqlitemanager_
sql删除数据库中表中某列包含某个字
 use table  update table set Name=REPLACE(Name,'市','') where Name like '%市%'其中replace REPLACE ( 'string_expression1' , 'string_expression2' , 'string_expression3' )'string_expression1' 待搜索的字符串表达式。'str...
mysql_insert 动态值设置表达式
mysql_insert 动态值设置表达式
关于SQL替换某一字段所包含的字符串语句
update Table set A= REPLACE(A,'a','b') a:目标字符串 b:新字符串
Bug:Sqlite3插入时由于json不能识别传入的单引号字符串引起的问题
由于现有的sqlite3在实际使用中被封装了一层,昨天在调试写测试例子时碰到一个问题, sqlie3_exec函数在执行sql的insert语句时,总是报错,不能识别字符串.\ 经过检查: 由于封装的上层输入参数是通过Json来作为各个参数,或者记录输入的. 而传入时, json::value rec; insert(rec); 这样写的原因是,当时直接从sqlite3里把原
一个sql很多个not like的简化语句
如: select * from table where `zongbu` not like '%北京%' and `zongbu` not like '%上海%' and `zongbu` not like '%深圳%' and `zongbu` not like '天津' and `zongbu` not like '香港' and `zongbu` not like '沈阳' SELECT
SQL语句删除字段中包含的某个字符
比如车牌 晋A12345 中的 晋 字。有的行是没有的,只要删除有的 sql语句: -- Oracle  update 表   set 列 = replace (列,'晋','') where 列 like '%晋%' or  update 表   set 列 = '晋' ||  列  where 列 not like '%晋%' -- MySQL upd
Qt中SQL语句update同时更新多字段及设置字段值为空的方法
Qt中往往需要对数据库进行操作,常出现根据某变量更改相关字段的内容。一般地,可以采用名称绑定和位置绑定两种方法。Qt与MySQL连接方法:https://blog.csdn.net/ckzhb/article/details/79630035本文以update举例,其他insert等语句操作类似。方法一:名称绑定已知:定义Qstring类型变量a b c d e f g h。 QSqlQuery ...
Oracle数据库(where语句和列表达式)
1.Where语句 关系运算:>、、>=、 逻辑运算符:not、and、or is null:是否为空 between:在某两个值之间 in:一系列值中 like:相似值的比较 exits:是否存在符号条件的数据 unique:是否唯一 all/any:一组数据的所有/其中的任何一个 %: 匹配符,匹配0个、一个或多个任意字符的 |
Oracle查询表中指定字段的数据是否含有某个字符
[size=medium]采用user_table_column即可, 该视图主要字段说明如下: TABLE_NAME 表、视图或Clusters名称 COLUMN_NAME 列名 DATA_TYPE 数据类型 我的需求如下:要在当前用户的表里面找到所有商品ID为A的字段并将其更新[/size] [code="sql"] declare v_sql varch...
sql查询包含下划线的问题
假如有个表user:  id | name  --------------- 1 | tom 2 | ._%\% 3 | Jack  要查name包含下划线_的, 执行sql语句:  select * from user where name like '%_%' , 竟然会把全部行都查出来了, 要想正确地查,就要  select * from user where nam
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 大数据技术包含机器学习吗 深度学习视频花钱值吗